Function at 0x102fff00
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [0x104d9790]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, ecx
mov dword [esp + 4], edx
mov ecx, dword [ebp + 8]
push ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax]
mov ebx, dword [eax + 8]
push esi
mov dword [esp + 0x14], ecx
mov ecx, ebx
push edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
call fcn.102cfd70
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.102cfd70
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov esi, dword [ecx + 0x38]
movzx eax, byte [ecx + 4]
mov edx, dword [ecx + 0x3c]
cmp eax, 0x71
mov dword [esp + 0x3c], eax
mov edi, dword [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
je 0x10300099
cmp byte [eax + 0x38], 0
mov edi, 1
jne 0x10300095
mov eax, dword [esp + 0x34]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + 0x24], eax
jmp 0x102fffb0
mov eax, dword [ecx]
cmp edi, dword [eax]
jg 0x1030008d
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov edx, dword [esi + 8]
test eax, eax
jle 0x102fffe7
add edx, 0x14
mov ebx, eax
lea esp, [esp]
movzx eax, word [edx]
cmp eax, edi
je 0x102fffdf
inc ecx
add edx, 0x18
cmp ecx, ebx
jl 0x102fffd0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
cmp ecx, eax
jne 0x1030005f
mov ecx, dword [esp + 0x18]
mov edx, 0x2d
call fcn.102b4530
mov esi, eax
test esi, esi
je 0x10300073
push 0x2d
push 0
push esi
call fcn.1033be70
mov edx, dword [esp + 0x44]
or eax, 0xffffffff
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov word [esi + 0x1e], ax
mov eax, 0x400
mov byte [esi], 0x81
mov byte [esi + 0x2c], 0
or word [esi + 2], ax
push esi
mov dword [esi + 0x14], 1
mov dword [esi + 4], edi
call fcn.102e1210
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
test esi, esi
je 0x1030005f
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 8]
inc dword [esp + 0x34]
mov word [eax + ecx + 0x14], di
add ecx, 0x18
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x18]
inc edi
cmp byte [edx + 0x38], 0
jne 0x10300093
mov ecx, dword [esp + 0x10]
jmp 0x102fffb0
mov eax, 7
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.103362c6
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
jmp 0x10300095
mov eax, edx
mov edi, dword [esp + 0x34]
lea edx, [edi*4]
mov ecx, eax
call fcn.102b4530
mov dword [esp + 0x70], eax
test eax, eax
je 0x1030025d
mov edx, dword [esi + 8]
xor ecx, ecx
test edi, edi
jle 0x103000d4
add edx, 0x14
mov ebx, eax
movzx eax, word [edx]
lea edx, [edx + 0x18]
dec eax
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, edi
jl 0x103000c1
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
lea edx, [edi + 4]
lea edx, [edi + edx*4]
call fcn.102b4530
mov ecx, eax
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x10300265
lea eax, [edi + 3]
mov word [ecx + 6], di
lea eax, [ecx + eax*4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test edi, edi
jle 0x10300265
mov eax, dword [esp + 0x50]
xor edx, edx
mov ebx, dword [esp + 0x34]
add eax, 0xc
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], eax
mov eax, dword [esi + 8]
mov edi, dword [edx + eax]
mov eax, 0x100
test word [edi + 2], ax
je 0x10300158
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.102dfca0
mov edx, dword [esp + 0x28]
mov esi, eax
jmp 0x1030021d
mov eax, dword [esp + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov edx, dword [ecx + 0x3c]
test edx, edx
je 0x1030018b
mov ecx, dword [esp + 0x14]
push eax
call fcn.102ff1a0
mov esi, eax
add esp, 4
test esi, esi
jne 0x103001b2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x1030018d
xor esi, esi
mov edx, dword [ecx]
cmp eax, dword [edx]
jge 0x103001a7
mov edx, dword [edx + 8]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + eax*8]
call fcn.102dfca0
mov esi, eax
test esi, esi
jne 0x103001b2
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 8]
mov ecx, dword [esi]
mov eax, ecx
mov dword [esp + 0x5c], ecx
test ecx, ecx
jne 0x103001c4
mov dword [esp + 0x60], ecx
jmp 0x1030020f
cmp byte [ecx], 0
je 0x103001d6
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x103001d0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x60], eax
jbe 0x1030020f
lea eax, [esp + 0x5c]
mov edx, 0x5c
push 1
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
call fcn.102e01b0
add esp, 8
test eax, eax
je 0x1030020f
mov ecx, 0x100
mov dword [eax + 8], edi
or word [eax + 2], cx
mov edi, eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov dword [edx + eax], edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
add dword [esp + 0x40], 4
mov dword [eax], esi
mov esi, dword [esp + 0x38]
mov ecx, dword [ecx + 8]
mov eax, dword [esi + 8]
mov al, byte [eax + edx + 0xc]
add edx, 0x18
mov byte [edi + ecx], al
mov ecx, edi
inc ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
cmp ecx, ebx
jl 0x10300131
mov ebx, dword [esp + 0x30]
jmp 0x10300265
mov dword [esp + 0x50], 0
mov edi, dword [esp + 0x10]
mov edx, esi
push 0
mov dword [edi + 0x38], esi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
call fcn.102e0be0
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp dword [esp + 0x3c], 0x71
mov dword [ecx + 0x38], eax
jne 0x10300299
mov dword [esp + 0x20], 0
jmp 0x103003b6
mov eax, dword [edi]
mov edi, dword [eax]
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x24], edi
lea ecx, [eax + 1]
inc eax
add eax, edi
mov dword [esp + 0x20], ecx
mov dword [esi + 0x4c], eax
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x103002c4
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x103002f8
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x18]
lea esi, [edi + 4]
lea esi, [edi + esi*4]
mov edx, esi
call fcn.102b4530
mov ecx, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x103003ae
push esi
push 0
push ecx
call fcn.1033be70
mov ecx, dword [esp + 0x38]
add esp, 0xc
test ecx, ecx
je 0x103003ae
lea eax, [edi + 3]
mov word [ecx + 6], di
lea eax, [ecx + eax*4]
xor esi, esi
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
test edi, edi
jle 0x103003ae
xor ebx, ebx
lea edi, [ecx + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x3c]
test edx, edx
je 0x10300375
mov ecx, dword [esp + 0x14]
push esi
call fcn.102ff1a0
add esp, 4
test eax, eax
jne 0x10300390
jmp 0x10300377
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
cmp esi, dword [edx]
jge 0x10300390
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + ebx]
call fcn.102dfca0
mov dword [edi], eax
add ebx, 0x18
mov eax, dword [esp + 0x2c]
add edi, 4
mov eax, dword [eax + 8]
mov byte [esi + eax], 0
inc esi
cmp esi, dword [esp + 0x24]
jl 0x10300357
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
push 0x1041e80c
push dword [edi + 0x38]
mov edx, edi
mov dword [edi + 0x3c], 0
mov ecx, esi
call fcn.102df4a0
mov eax, dword [esp + 0x50]
add esp, 8
cmp dword [eax + 0x3c], 0
jne 0x103003ef
push 0x1041e80c
push dword [eax + 0x38]
mov edx, eax
mov ecx, esi
call fcn.102df4a0
add esp, 8
push dword [esp + 0x44]
mov edx, edi
mov ecx, esi
call fcn.102fefe0
add esp, 4
cmp dword [edi + 8], 0
je 0x10300588
cmp dword [esp + 0x3c], 0x71
jne 0x10300588
mov edi, dword [esi + 0x4c]
mov ecx, dword [esp + 0x10]
inc edi
lea eax, [edi + 1]
mov dword [esp + 0x1c], eax
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x10300430
inc eax
jmp 0x10300433
mov eax, dword [ecx + 8]
mov esi, dword [ebx + 0x1c]
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x20], esi
jg 0x1030044a
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x1030047a
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x1030048d
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x103004bd
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x48]
call fcn.102e07f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x4c]
mov dword [eax + 0x48], 0
call fcn.102e07f0
mov eax, dword [esp + 0x10]
mov word [esp + 0x8c], 0xa
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [eax + 0x4c], 0
inc dword [esi + 0x4c]
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x90], ecx
mov word [esp + 0x7c], 0xa
mov dword [esp + 0x84], 0
lea eax, [ecx + 1]
mov dword [esp + 0x88], 0
lea edx, [eax + 1]
mov dword [esp + 0x30], eax
lea eax, [edx + 1]
mov dword [esp + 0x80], edx
mov dword [esp + 0x28], eax
add eax, 2
mov dword [esi + 0x4c], eax
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x64], eax
cmp dword [ebx + 0x20], eax
jg 0x1030059b
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x10300597
mov dword [esp + 0x64], 1
jmp 0x103005cf
mov dword [esp + 0x1c], 0
xor edi, edi
jmp 0x103004c1
mov eax, dword [esp + 0x64]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x48]
mov edx, ecx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x78], eax
mov dword [ecx + 8], edi
mov ecx, esi
mov eax, dword [esi + 0x1e8]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x8c]
push eax
call fcn.10302ed0
mov esi, dword [ebx + 0x1c]
add esp, 4
cmp dword [ebx + 0x20], esi
jg 0x1030060e
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300642
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300655
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300689
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0xc], 0
mov edx, dword [eax + 0x1e8]
mov dword [esp + 0x74], edx
lea edx, [esp + 0x7c]
push edx
mov edx, ecx
mov ecx, eax
call fcn.10302ed0
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x103006e4
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x1030071a
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edi, dword [esp + 0x28]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1030071e
mov edi, dword [esp + 0x28]
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300731
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300765
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x44]
mov esi, dword [esp + 0x24]
lea eax, [edi + 1]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0xfffffffffffffff0
push dword [esp + 0x34]
push esi
push eax
push dword [esp + 0x68]
lea eax, [esp + 0xa4]
push eax
call fcn.102ffac0
mov edi, eax
add esp, 0x1c
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], edi
cmp eax, 0x71
je 0x103007a8
cmp eax, 0x70
jne 0x103007de
push dword [esp + 0x44]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffef
push dword [esp + 0x34]
push esi
push dword [esp + 0x68]
push dword [esp + 0x68]
push eax
call fcn.102ffac0
mov dword [esp + 0x84], eax
add esp, 0x1c
mov eax, dword [esp + 0x3c]
cmp eax, 0x72
je 0x10300937
cmp eax, 0x73
je 0x10300937
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x20], edx
cmp dword [ebx + 0x20], edx
jg 0x10300815
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x10300811
mov dword [esp + 0x20], 1
jmp 0x10300849
mov edx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x1030085c
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300890
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 2
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x103008a3
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x103008d7
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x103008ea
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x1030091e
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
movsd xmm0, qword [edx + 0x20]
addsd xmm0, qword [ecx + 0x20]
movsd qword [ecx + 0x20], xmm0
jmp 0x10300994
mov esi, dword [ebx + 0x1c]
mov dword [esp + 0x20], esi
cmp dword [ebx + 0x20], esi
jg 0x10300958
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x10300958
mov dword [esp + 0x20], 1
jmp 0x1030098c
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x3c], 0x73
jne 0x103009c1
movsd xmm1, qword [edx + 0x20]
movsd xmm0, qword [ecx + 0x20]
comisd xmm0, xmm1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
jbe 0x10300aec
movsd qword [ecx + 0x20], xmm1
jmp 0x10300aec
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], edx
cmp dword [ebx + 0x20], edx
jg 0x103009e6
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x103009e2
mov dword [esp + 0x2c], 1
jmp 0x10300a1a
mov edx, dword [esp + 0x2c]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300a2d
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300a5e
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x28]
inc edx
mov word [eax + ecx*4], 2
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300a71
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300aa5
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300ab8
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300aec
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x24], edi
cmp dword [ebx + 0x20], edi
jg 0x10300b0e
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x10300b0e
mov edi, 1
mov dword [esp + 0x24], edi
jmp 0x10300b43
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x28]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 2
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300b56
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300b8a
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300b9d
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300bd1
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300be4
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300c18
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x3c]
cmp eax, 0x71
jne 0x10300c2a
mov dword [esp + 0x1c], edi
jmp 0x10300d24
cmp eax, 0x73
jne 0x10300c3d
mov dword [esp + 0x1c], edi
inc edi
mov dword [esp + 0x24], edi
jmp 0x10300d24
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x1c], edi
cmp dword [ebx + 0x20], edi
jg 0x10300c5e
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x10300c5e
mov dword [esp + 0x1c], 1
jmp 0x10300c92
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300ca5
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300cd9
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300cec
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300d20
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x3c]
mov esi, dword [ebx + 0x1c]
mov dword [esp + 0x3c], esi
cmp eax, 0x71
je 0x10300d35
cmp eax, 0x70
jne 0x10300d79
cmp dword [ebx + 0x20], esi
jg 0x10300d45
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300d79
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 2
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300d8c
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300dc0
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300dd3
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300e09
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10300e0d
mov edi, dword [esp + 0x2c]
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300e20
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300e54
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x64]
test eax, eax
js 0x10300e6d
mov edx, dword [ebx + 0x1c]
cmp edx, eax
jbe 0x10300e6d
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 8], edx
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300e80
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300eb4
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300ec7
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300efb
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300f0e
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300f42
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x78]
mov word [eax + ecx*4], 2
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300f55
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300f89
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 2
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300f9c
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10300fd0
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10300fe3
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10301013
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x1b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1030102c
mov eax, dword [esp + 0x4c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x10301046
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x10301046
mov esi, 1
jmp 0x1030107a
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff1
push dword [esp + 0x74]
mov edx, esi
mov ecx, ebx
call fcn.102d0120
mov esi, dword [ebx + 0x1c]
add esp, 8
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x6c], eax
cmp dword [ebx + 0x20], esi
jg 0x103010b8
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
je 0x103010b8
mov esi, 1
jmp 0x103010e8
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff0
push dword [esp + 0x54]
mov edx, esi
mov ecx, ebx
call fcn.102d0120
mov ecx, dword [ebx + 4]
add esp, 8
test ecx, ecx
je 0x1030110c
mov eax, dword [ebx + 0x1c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 1
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x1030111f
mov ecx, ebx
call fcn.102cf9d0
test eax, eax
jne 0x10301153
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1030116c
mov eax, dword [esp + 0x44]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
cmp byte [eax], 5
jne 0x1030119f
mov eax, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x1030118b
mov ecx, eax
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x10301182
push dword [ecx]
mov ebx, dword [esp + 0x18]
xor edx, edx
mov ecx, ebx
call fcn.102fe940
add esp, 4
jmp 0x103011a3
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x3c]
test esi, esi
je 0x10301218
mov edi, dword [esp + 0x18]
mov ecx, edi
mov edx, dword [esi]
call fcn.102e13e0
mov edx, dword [esi + 0x28]
mov ecx, edi
call fcn.102eca60
mov edx, dword [esi + 0x2c]
mov ecx, edi
call fcn.102e07f0
mov edx, dword [esi + 0x30]
mov ecx, edi
call fcn.102e13e0
mov edx, dword [esi + 0x34]
mov ecx, edi
call fcn.102e07f0
mov edx, dword [esi + 0x38]
mov ecx, edi
call fcn.102e13e0
mov edx, dword [esi + 0x3c]
mov ecx, edi
call fcn.102fcc10
mov edx, dword [esi + 0x48]
mov ecx, edi
call fcn.102e07f0
mov edx, dword [esi + 0x4c]
mov ecx, edi
call fcn.102e07f0
mov edx, esi
mov ecx, edi
call fcn.102b42e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x3c], ecx
cmp byte [ebx + 0x1d4], 2
jne 0x103012e6
movzx eax, byte [eax + 4]
mov edi, dword [ebx + 8]
sub eax, 0x71
je 0x10301253
dec eax
je 0x1030124c
dec eax
je 0x10301245
mov eax, 0x1042072c
jmp 0x10301258
mov eax, 0x1042073c
jmp 0x10301258
mov eax, 0x10420734
jmp 0x10301258
mov eax, 0x10420748
push eax
push 0x103f931a
push dword [esp + 0x7c]
push dword [esp + 0x68]
push 0x1042075c
push dword [ebx]
call fcn.102b5920
mov dword [esp + 0x8c], eax
add esp, 0x18
mov eax, dword [ebx + 0x1e4]
mov ebx, dword [edi + 0x1c]
mov dword [esp + 0x5c], eax
cmp dword [edi + 0x20], ebx
jg 0x103012a0
mov ecx, edi
call fcn.102cf9d0
test eax, eax
je 0x103012a0
mov ebx, 1
jmp 0x103012d4
mov eax, dword [edi + 4]
lea esi, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov ecx, dword [esp + 0x5c]
mov word [eax + esi*4], 0x96
mov byte [eax + esi*4 + 3], 0
mov dword [eax + esi*4 + 4], ecx
mov dword [eax + esi*4 + 8], 0
mov dword [eax + esi*4 + 0xc], 0
mov dword [eax + esi*4 + 0x10], 0
push 0xffffffffffffffff
push dword [esp + 0x78]
mov edx, ebx
mov ecx, edi
call fcn.102d0120
add esp, 8
mov ecx, dword [esp + 0x9c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.103362c6
mov esp, ebp
pop ebp
ret