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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [0x104cc790]
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.102c8a30
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.102c8a30
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 0x102f8d59
cmp byte [eax + 0x38], 0
mov edi, 1
jne 0x102f8d55
mov eax, dword [esp + 0x34]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + 0x24], eax
jmp 0x102f8c70
mov eax, dword [ecx]
cmp edi, dword [eax]
jg 0x102f8d4d
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov edx, dword [esi + 8]
test eax, eax
jle 0x102f8ca7
add edx, 0x14
mov ebx, eax
lea esp, [esp]
movzx eax, word [edx]
cmp eax, edi
je 0x102f8c9f
inc ecx
add edx, 0x18
cmp ecx, ebx
jl 0x102f8c90
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
cmp ecx, eax
jne 0x102f8d1f
mov ecx, dword [esp + 0x18]
mov edx, 0x2d
call fcn.102ad1f0
mov esi, eax
test esi, esi
je 0x102f8d33
push 0x2d
push 0
push esi
call fcn.10334af0
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.102d9ed0
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
test esi, esi
je 0x102f8d1f
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 0x102f8d53
mov ecx, dword [esp + 0x10]
jmp 0x102f8c70
mov eax, 7
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.1032ef46
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
jmp 0x102f8d55
mov eax, edx
mov edi, dword [esp + 0x34]
lea edx, [edi*4]
mov ecx, eax
call fcn.102ad1f0
mov dword [esp + 0x70], eax
test eax, eax
je 0x102f8f1d
mov edx, dword [esi + 8]
xor ecx, ecx
test edi, edi
jle 0x102f8d94
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 0x102f8d81
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
lea edx, [edi + 4]
lea edx, [edi + edx*4]
call fcn.102ad1f0
mov ecx, eax
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x102f8f25
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 0x102f8f25
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 0x102f8e18
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.102d8960
mov edx, dword [esp + 0x28]
mov esi, eax
jmp 0x102f8edd
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 0x102f8e4b
mov ecx, dword [esp + 0x14]
push eax
call fcn.102f7e60
mov esi, eax
add esp, 4
test esi, esi
jne 0x102f8e72
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x102f8e4d
xor esi, esi
mov edx, dword [ecx]
cmp eax, dword [edx]
jge 0x102f8e67
mov edx, dword [edx + 8]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + eax*8]
call fcn.102d8960
mov esi, eax
test esi, esi
jne 0x102f8e72
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 0x102f8e84
mov dword [esp + 0x60], ecx
jmp 0x102f8ecf
cmp byte [ecx], 0
je 0x102f8e96
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x102f8e90
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x60], eax
jbe 0x102f8ecf
lea eax, [esp + 0x5c]
mov edx, 0x5c
push 1
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
call fcn.102d8e70
add esp, 8
test eax, eax
je 0x102f8ecf
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 0x102f8df1
mov ebx, dword [esp + 0x30]
jmp 0x102f8f25
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.102d98a0
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp dword [esp + 0x3c], 0x71
mov dword [ecx + 0x38], eax
jne 0x102f8f59
mov dword [esp + 0x20], 0
jmp 0x102f9076
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 0x102f8f84
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f8fb8
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.102ad1f0
mov ecx, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x102f906e
push esi
push 0
push ecx
call fcn.10334af0
mov ecx, dword [esp + 0x38]
add esp, 0xc
test ecx, ecx
je 0x102f906e
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 0x102f906e
xor ebx, ebx
lea edi, [ecx + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x3c]
test edx, edx
je 0x102f9035
mov ecx, dword [esp + 0x14]
push esi
call fcn.102f7e60
add esp, 4
test eax, eax
jne 0x102f9050
jmp 0x102f9037
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
cmp esi, dword [edx]
jge 0x102f9050
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + ebx]
call fcn.102d8960
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 0x102f9017
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
push 0x10416660
push dword [edi + 0x38]
mov edx, edi
mov dword [edi + 0x3c], 0
mov ecx, esi
call fcn.102d8160
mov eax, dword [esp + 0x50]
add esp, 8
cmp dword [eax + 0x3c], 0
jne 0x102f90af
push 0x10416660
push dword [eax + 0x38]
mov edx, eax
mov ecx, esi
call fcn.102d8160
add esp, 8
push dword [esp + 0x44]
mov edx, edi
mov ecx, esi
call fcn.102f7ca0
add esp, 4
cmp dword [edi + 8], 0
je 0x102f9248
cmp dword [esp + 0x3c], 0x71
jne 0x102f9248
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 0x102f90f0
inc eax
jmp 0x102f90f3
mov eax, dword [ecx + 8]
mov esi, dword [ebx + 0x1c]
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x20], esi
jg 0x102f910a
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f913a
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 0x102f914d
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f917d
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.102d94b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x4c]
mov dword [eax + 0x48], 0
call fcn.102d94b0
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 0x102f925b
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f9257
mov dword [esp + 0x64], 1
jmp 0x102f928f
mov dword [esp + 0x1c], 0
xor edi, edi
jmp 0x102f9181
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.102fbb80
mov esi, dword [ebx + 0x1c]
add esp, 4
cmp dword [ebx + 0x20], esi
jg 0x102f92ce
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9302
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 0x102f9315
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9349
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.102fbb80
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 0x102f93a4
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f93da
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 0x102f93de
mov edi, dword [esp + 0x28]
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x102f93f1
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9425
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.102f8780
mov edi, eax
add esp, 0x1c
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], edi
cmp eax, 0x71
je 0x102f9468
cmp eax, 0x70
jne 0x102f949e
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.102f8780
mov dword [esp + 0x84], eax
add esp, 0x1c
mov eax, dword [esp + 0x3c]
cmp eax, 0x72
je 0x102f95f7
cmp eax, 0x73
je 0x102f95f7
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x20], edx
cmp dword [ebx + 0x20], edx
jg 0x102f94d5
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f94d1
mov dword [esp + 0x20], 1
jmp 0x102f9509
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 0x102f951c
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9550
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 0x102f9563
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9597
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 0x102f95aa
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f95de
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 0x102f9654
mov esi, dword [ebx + 0x1c]
mov dword [esp + 0x20], esi
cmp dword [ebx + 0x20], esi
jg 0x102f9618
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f9618
mov dword [esp + 0x20], 1
jmp 0x102f964c
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 0x102f9681
movsd xmm1, qword [edx + 0x20]
movsd xmm0, qword [ecx + 0x20]
comisd xmm0, xmm1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
jbe 0x102f97ac
movsd qword [ecx + 0x20], xmm1
jmp 0x102f97ac
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], edx
cmp dword [ebx + 0x20], edx
jg 0x102f96a6
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f96a2
mov dword [esp + 0x2c], 1
jmp 0x102f96da
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 0x102f96ed
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f971e
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 0x102f9731
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9765
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 0x102f9778
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f97ac
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 0x102f97ce
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f97ce
mov edi, 1
mov dword [esp + 0x24], edi
jmp 0x102f9803
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 0x102f9816
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f984a
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 0x102f985d
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9891
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 0x102f98a4
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f98d8
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 0x102f98ea
mov dword [esp + 0x1c], edi
jmp 0x102f99e4
cmp eax, 0x73
jne 0x102f98fd
mov dword [esp + 0x1c], edi
inc edi
mov dword [esp + 0x24], edi
jmp 0x102f99e4
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x1c], edi
cmp dword [ebx + 0x20], edi
jg 0x102f991e
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f991e
mov dword [esp + 0x1c], 1
jmp 0x102f9952
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 0x102f9965
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9999
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 0x102f99ac
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f99e0
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 0x102f99f5
cmp eax, 0x70
jne 0x102f9a39
cmp dword [ebx + 0x20], esi
jg 0x102f9a05
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9a39
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 0x102f9a4c
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9a80
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 0x102f9a93
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9ac9
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 0x102f9acd
mov edi, dword [esp + 0x2c]
mov esi, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], esi
jg 0x102f9ae0
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9b14
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 0x102f9b2d
mov edx, dword [ebx + 0x1c]
cmp edx, eax
jbe 0x102f9b2d
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 0x102f9b40
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9b74
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 0x102f9b87
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9bbb
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 0x102f9bce
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9c02
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 0x102f9c15
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9c49
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 0x102f9c5c
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9c90
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 0x102f9ca3
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9cd3
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 0x102f9cec
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 0x102f9d06
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f9d06
mov esi, 1
jmp 0x102f9d3a
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.102c8de0
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 0x102f9d78
mov ecx, ebx
call fcn.102c8690
test eax, eax
je 0x102f9d78
mov esi, 1
jmp 0x102f9da8
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.102c8de0
mov ecx, dword [ebx + 4]
add esp, 8
test ecx, ecx
je 0x102f9dcc
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 0x102f9ddf
mov ecx, ebx
call fcn.102c8690
test eax, eax
jne 0x102f9e13
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 0x102f9e2c
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 0x102f9e5f
mov eax, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x102f9e4b
mov ecx, eax
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x102f9e42
push dword [ecx]
mov ebx, dword [esp + 0x18]
xor edx, edx
mov ecx, ebx
call fcn.102f7600
add esp, 4
jmp 0x102f9e63
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x3c]
test esi, esi
je 0x102f9ed8
mov edi, dword [esp + 0x18]
mov ecx, edi
mov edx, dword [esi]
call fcn.102da0a0
mov edx, dword [esi + 0x28]
mov ecx, edi
call fcn.102e5720
mov edx, dword [esi + 0x2c]
mov ecx, edi
call fcn.102d94b0
mov edx, dword [esi + 0x30]
mov ecx, edi
call fcn.102da0a0
mov edx, dword [esi + 0x34]
mov ecx, edi
call fcn.102d94b0
mov edx, dword [esi + 0x38]
mov ecx, edi
call fcn.102da0a0
mov edx, dword [esi + 0x3c]
mov ecx, edi
call fcn.102f58d0
mov edx, dword [esi + 0x48]
mov ecx, edi
call fcn.102d94b0
mov edx, dword [esi + 0x4c]
mov ecx, edi
call fcn.102d94b0
mov edx, esi
mov ecx, edi
call fcn.102acfa0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x3c], ecx
cmp byte [ebx + 0x1d4], 2
jne 0x102f9fa6
movzx eax, byte [eax + 4]
mov edi, dword [ebx + 8]
sub eax, 0x71
je 0x102f9f13
dec eax
je 0x102f9f0c
dec eax
je 0x102f9f05
mov eax, 0x1041865c
jmp 0x102f9f18
mov eax, 0x104185a4
jmp 0x102f9f18
mov eax, 0x1041859c
jmp 0x102f9f18
mov eax, 0x104185b0
push eax
push 0x103f032a
push dword [esp + 0x7c]
push dword [esp + 0x68]
push 0x10418608
push dword [ebx]
call fcn.102ae5e0
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 0x102f9f60
mov ecx, edi
call fcn.102c8690
test eax, eax
je 0x102f9f60
mov ebx, 1
jmp 0x102f9f94
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.102c8de0
add esp, 8
mov ecx, dword [esp + 0x9c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1032ef46
mov esp, ebp
pop ebp
ret