Function at 0x1014a050
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x174
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 8]
xor ecx, ecx
mov dword [esp + 0xf0], eax
mov eax, dword [ebp + 0x18]
push edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0xf8], 2
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xfc], ecx
cmp eax, ecx
jne 0x1014a0d0
mov ecx, dword [ebp + 8]
push 0x1008e004
push ecx
mov edx, 0xdb0
mov eax, esi
call fcn.1010ad00
add esp, 8
lea esi, [esp + 0xf0]
mov dword [esp + 0x28], 0x80004005
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ecx
cmp edi, ecx
je 0x1014a0eb
xor edx, edx
div edi
jmp 0x1014a0f0
mov eax, 1
mov edi, eax
mov eax, dword [ebp + 0x20]
lea edx, [esp + 0x100]
push edx
push eax
mov dword [esp + 0xac], ecx
push 1
mov ecx, esi
mov dword [esp + 0xac], edi
call fcn.10109810
test eax, eax
jl 0x1014a222
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x38]
lea ebx, [esp + 0x8c]
lea esi, [esp + 0x104]
call fcn.10149ea0
test al, al
sete al
test al, al
jne 0x1014a16e
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov ecx, dword [ebp + 0x10]
push edx
push eax
push 0
push ecx
call fcn.101dd180
xor ecx, ecx
cmp edx, ecx
jb 0x1014a1e7
ja 0x1014a16e
cmp eax, dword [ebp + 0x18]
jb 0x1014a1e7
mov eax, dword [esp + 0x34]
cmp byte [eax + 0xf7], 0
mov edx, dword [ebp + 8]
jne 0x1014a1b3
mov byte [eax + 0xf6], 1
mov dword [eax + 0xf8], edx
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1014d087
mov ecx, dword [ebp + 0x10]
lea edx, [ecx*4]
mov ecx, dword [ebp + 0x14]
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x1014d087
push 0x1008e004
push edx
mov edx, 0xdb0
call fcn.1010ad00
add esp, 8
lea esi, [esp + 0xf0]
mov dword [esp + 0x28], 0x80004005
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov ecx, esi
add ecx, 1
mov eax, edx
adc eax, 0
cmp dword [esp + 0xa4], eax
jb 0x1014a222
ja 0x1014a208
cmp edi, ecx
jbe 0x1014a222
cmp eax, edx
jb 0x1014a222
ja 0x1014a212
cmp ecx, esi
jbe 0x1014a222
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov edi, ecx
xor ebx, ebx
cmp dword [ebp + 0xc], ebx
jne 0x1014a244
lea esi, [esp + 0xf0]
mov dword [esp + 0x28], ebx
call fcn.100da650
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov eax, edx
add eax, 1
adc ecx, ebx
cmp eax, edi
jne 0x1014a26b
mov byte [esp + 0x4f], 1
cmp ecx, dword [esp + 0xa4]
je 0x1014a270
mov byte [esp + 0x4f], 0
cmp byte [esp + 0x4f], 0
mov esi, dword [ebp + 0x1c]
mov eax, esi
je 0x1014a2b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
imul edx, eax
lea edx, [ecx + edx*4]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x14], edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xa0], 1
mov dword [esp + 0xa4], ebx
xor eax, eax
cmp byte [ebp + 0x24], 0
jne 0x1014a2e8
cmp esi, ebx
je 0x1014a2c6
mov ecx, dword [esi + 8]
cmp ecx, ebx
je 0x1014a2c6
add ecx, 0x10
jmp 0x1014a2c8
xor ecx, ecx
mov edx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x40]
push ecx
push eax
call fcn.101091d0
cmp eax, ebx
mov dword [esp + 0x28], eax
jl 0x1014d08f
or edx, 0xffffffff
or esi, 0xffffffff
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x64], edx
mov byte [esp + 0x2f], 1
cmp dword [ebp + 0x18], ebx
jbe 0x1014a344
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [eax + 0x50]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
or dword [esp + 0x78], edx
or dword [esp + 0x7c], ecx
mov eax, dword [eax + 0x4c]
and esi, edx
mov edx, dword [esp + 0x64]
and edx, ecx
mov ecx, dword [eax*4 + 0x101e0f10]
shr ecx, 9
mov dword [esp + 0x64], edx
test cl, 1
jne 0x1014a33e
mov byte [esp + 0x2f], 0
inc ebx
cmp ebx, dword [ebp + 0x18]
jb 0x1014a304
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
and eax, 0x2800080
and ecx, 0x25e0
or eax, ecx
mov byte [esp + 0x9f], 1
je 0x1014a36b
mov byte [esp + 0x9f], 0
mov eax, esi
and eax, 2
xor ecx, ecx
or eax, ecx
mov byte [esp + 0x9d], 1
jne 0x1014a385
mov byte [esp + 0x9d], cl
mov eax, esi
and eax, 0x40
xor ecx, ecx
or eax, ecx
mov byte [esp + 0x9c], 1
jne 0x1014a39f
mov byte [esp + 0x9c], cl
mov eax, esi
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x1014a3b0
mov bl, 1
jmp 0x1014a3b2
xor bl, bl
mov eax, esi
and eax, 0x400000
xor ecx, ecx
or eax, ecx
mov byte [esp + 0x2e], bl
mov byte [esp + 0x9e], 1
jne 0x1014a3d2
mov byte [esp + 0x9e], cl
and esi, 0x8000000
xor eax, eax
or esi, eax
mov byte [esp + 0x3e], 1
jne 0x1014a3e7
mov byte [esp + 0x3e], cl
and edx, 0x4000
xor eax, eax
or eax, edx
mov byte [esp + 0x87], 1
jne 0x1014a402
mov byte [esp + 0x87], cl
cmp byte [esp + 0x3e], cl
je 0x1014a646
mov bl, 1
mov byte [esp + 0x2e], bl
cmp byte [ebp + 0x24], cl
jne 0x1014a646
cmp byte [esp + 0x4f], cl
je 0x1014a48a
mov edx, dword [ebp + 0x10]
xor eax, eax
test edx, edx
jbe 0x1014a44f
mov ecx, dword [esp + 0x88]
mov esi, dword [ebp + 0x14]
imul ecx, edx
lea ecx, [esi + ecx*4]
mov esi, dword [ebp + 0xc]
lea ecx, [ecx]
mov edi, dword [ecx]
mov dword [esi + eax*4], edi
inc eax
add ecx, 4
cmp eax, edx
jb 0x1014a440
jmp 0x1014a452
mov esi, dword [ebp + 0xc]
cmp byte [ebp + 0x28], 0
jne 0x1014d08f
mov eax, dword [esp + 0x34]
push edx
mov edx, dword [ebp + 8]
push esi
push esi
push edx
push eax
call fcn.101064c0
lea esi, [esp + 0xf0]
mov dword [esp + 0x28], eax
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
lea esi, [ecx + 0x490]
call fcn.1017c720
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ecx]
mov edx, dword [ebx + 0x50]
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x5c]
push ecx
mov dword [esp + 0x44], edx
mov byte [esp + 0x73], al
mov eax, dword [edi + 8]
mov edi, dword [ebp + 0x18]
lea edx, [esp + 0x54]
mov esi, 2
push edx
add edi, edi
push eax
lea ecx, [esi + 2]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
call fcn.100db050
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov esi, dword [ebp + 0x18]
mov edx, dword [esp + 0x50]
xor ecx, ecx
lea edi, [edx + esi*4]
test esi, esi
jbe 0x1014a538
mov eax, dword [ebp + 0x14]
sub edx, eax
mov dword [esp + 0x60], edx
mov edx, edi
sub edx, eax
mov dword [esp + 0x70], edx
lea ecx, [ecx]
mov edx, dword [eax]
mov edi, dword [edx + 0x50]
cmp edi, dword [ebx + 0x50]
jne 0x1014a534
mov edi, dword [esp + 0x60]
mov dword [edi + eax], edx
mov edx, dword [esp + 0x70]
mov dword [edx + eax], 0xffffffff
inc ecx
add eax, 4
cmp ecx, esi
jb 0x1014a510
mov edx, dword [esp + 0x50]
cmp byte [esp + 0x6f], 0
je 0x1014a639
cmp ecx, esi
jne 0x1014a639
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x34]
mov ecx, dword [eax + 0x70]
lea edi, [edx + esi*4]
push edi
push edx
mov edx, dword [ebx + 0x1c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebx + 8]
push esi
push 0
push 0
push 8
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0
call fcn.10195600
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [edi]
cmp edx, 0xffffffff
je 0x1014a639
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x1014a639
xor eax, eax
test esi, esi
jbe 0x1014a5c5
lea esp, [esp]
mov ecx, dword [edi + eax*4]
cmp ecx, 0xffffffff
je 0x1014a5c5
mov ecx, dword [ecx + 0x50]
cmp ecx, dword [edx + 0x50]
jne 0x1014a5c5
inc eax
cmp eax, esi
jb 0x1014a5b0
cmp eax, esi
jne 0x1014a639
mov eax, dword [ebx + 8]
inc dword [eax + 0x494]
mov ebx, dword [ebp + 0x14]
test esi, esi
jbe 0x1014a5ee
mov ecx, edi
mov eax, ebx
sub ecx, ebx
mov edx, esi
mov edi, dword [eax + ecx]
mov dword [eax], edi
add eax, 4
sub edx, 1
jne 0x1014a5e1
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push esi
push ebx
push edx
push eax
push ecx
mov ecx, dword [esp + 0x58]
call fcn.1014a050
lea esi, [esp + 0x50]
mov dword [esp + 0x28], eax
call fcn.100da650
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
lea esi, [esp + 0x50]
call fcn.100da650
mov bl, byte [esp + 0x2e]
mov eax, dword [esp + 0x78]
and eax, 0x80000
xor ecx, ecx
or eax, ecx
mov byte [esp + 0xaf], bl
je 0x1014a6cf
mov esi, dword [esp + 0x34]
mov ecx, dword [esi + 0x144]
xor eax, eax
cmp dword [esp + 0x8c], eax
jb 0x1014a6a2
ja 0x1014a67c
cmp dword [esp + 0x88], ecx
jb 0x1014a6a2
mov ecx, dword [esi + 0x148]
xor eax, eax
cmp dword [esp + 0xa4], eax
ja 0x1014a6a2
jb 0x1014a698
cmp dword [esp + 0xa0], ecx
ja 0x1014a6a2
test byte [esi + 0x14], 4
je 0x1014a726
mov eax, dword [esi + 0x100]
mov ecx, eax
and ecx, 7
mov byte [esp + 0x2e], 0
cmp ecx, 3
je 0x1014a726
cmp ecx, 4
je 0x1014a726
cmp ecx, 1
je 0x1014a726
and eax, 0xfffffffa
or eax, 2
mov dword [esi + 0x100], eax
jmp 0x1014a726
mov edx, dword [esp + 0x34]
test bl, bl
jne 0x1014a6e3
mov eax, dword [edx + 8]
test byte [eax + 0x7fd2], 8
je 0x1014a6f6
cmp byte [esp + 0x3e], 0
je 0x1014a722
mov ecx, dword [edx + 8]
test byte [ecx + 0x7fd4], 2
jne 0x1014a722
mov eax, dword [edx + 0x100]
mov ecx, eax
and ecx, 7
cmp ecx, 3
je 0x1014a722
cmp ecx, 4
je 0x1014a722
mov esi, dword [esp + 0x34]
cmp ecx, 1
je 0x1014a726
and eax, 0xfffffffa
or eax, 2
mov dword [edx + 0x100], eax
jmp 0x1014a726
mov esi, dword [esp + 0x34]
cmp byte [esp + 0x4f], 0
je 0x1014a7f5
cmp byte [esp + 0x3e], 0
jne 0x1014a7f5
cmp byte [ebp + 0x24], 0
je 0x1014a7c3
mov ebx, dword [ebp + 0x10]
test ebx, ebx
jbe 0x1014a75b
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x34]
mov ecx, ebx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x88]
mov edx, dword [ebp + 0x14]
imul eax, ebx
mov ecx, dword [ebp + 8]
lea edi, [edx + eax*4]
mov edx, dword [ebp + 0xc]
mov eax, ebx
and eax, 0xfffff
or eax, 0x10000000
push eax
push ecx
push esi
xor eax, eax
mov ecx, edi
call fcn.1010b5d0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
xor esi, esi
test ebx, ebx
jbe 0x1014d087
nop
mov ebx, dword [edi]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + esi*4]
mov eax, ebx
call fcn.10168470
mov eax, dword [ebx + 0x70]
inc esi
add edi, 4
mov dword [ecx + 0x70], eax
cmp esi, dword [ebp + 0x10]
jb 0x1014a7a0
jmp 0x1014d087
mov edx, dword [ebp + 0x10]
xor eax, eax
test edx, edx
jbe 0x1014d087
mov ecx, dword [esp + 0x88]
mov esi, dword [ebp + 0x14]
imul ecx, edx
lea ecx, [esi + ecx*4]
mov esi, dword [ebp + 0xc]
mov edi, dword [ecx]
mov dword [esi + eax*4], edi
inc eax
add ecx, 4
cmp eax, edx
jb 0x1014a7e3
jmp 0x1014d087
mov al, byte [esp + 0x9c]
mov edi, dword [ebp + 0x10]
mov byte [esp + 0x4e], al
mov byte [esp + 0x3f], al
mov byte [esp + 0x6f], al
cmp edi, dword [ebp + 0x18]
jae 0x1014a8b6
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x90], ecx
mov edi, edi
cmp byte [esp + 0x3f], 0
jne 0x1014a82f
test al, al
je 0x1014a8ba
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + edi*4]
mov esi, dword [eax + 0x50]
mov edx, dword [ecx + 0x50]
mov ebx, dword [esi + 0x18]
cmp ebx, dword [edx + 0x18]
jne 0x1014a88a
mov ebx, dword [eax + 0x5c]
cmp ebx, dword [ecx + 0x5c]
jne 0x1014a88a
mov ebx, dword [eax + 0x58]
cmp ebx, dword [ecx + 0x58]
jne 0x1014a88a
mov ebx, dword [eax + 0x54]
cmp ebx, dword [ecx + 0x54]
jne 0x1014a868
cmp esi, edx
je 0x1014a86d
mov byte [esp + 0x4e], 0
mov edx, dword [eax + 0x60]
cmp edx, dword [ecx + 0x60]
je 0x1014a87a
mov byte [esp + 0x3f], 0
mov eax, dword [eax + 0x64]
cmp eax, dword [ecx + 0x64]
je 0x1014a89c
xor al, al
mov byte [esp + 0x6f], al
jmp 0x1014a8a0
xor al, al
mov byte [esp + 0x4e], 0
mov byte [esp + 0x3f], 0
mov byte [esp + 0x6f], al
jmp 0x1014a8a0
mov al, byte [esp + 0x6f]
add dword [esp + 0x90], 4
mov esi, dword [esp + 0x34]
inc edi
cmp edi, dword [ebp + 0x18]
jb 0x1014a820
test al, al
jne 0x1014a8bf
mov byte [esp + 0x2e], 0
cmp byte [esp + 0x4e], 0
mov cl, byte [esp + 0x3f]
je 0x1014a978
test cl, cl
je 0x1014a9ad
test al, al
je 0x1014a9ad
cmp byte [esp + 0x3e], 0
jne 0x1014a9ad
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x88]
test edi, edi
jbe 0x1014a908
mov esi, dword [esp + 0x34]
mov ecx, edi
mov edi, dword [ebp + 0xc]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 8]
mov eax, edi
and eax, 0xfffff
push edx
or eax, 0x10000000
push eax
push ecx
mov ecx, esi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
xor esi, esi
test edi, edi
jbe 0x1014d087
mov edx, dword [ebp + 0x14]
imul ebx, edi
lea edi, [edx + ebx*4]
mov eax, dword [ebp + 0xc]
mov ebx, dword [edi]
mov ecx, dword [eax + esi*4]
mov eax, ebx
call fcn.10168470
mov edx, dword [ebx + 0x70]
inc esi
add edi, 4
mov dword [ecx + 0x70], edx
cmp esi, dword [ebp + 0x10]
jb 0x1014a955
jmp 0x1014d087
test cl, cl
jne 0x1014a9ad
cmp byte [esp + 0x87], cl
jne 0x1014a9ad
mov byte [esp + 0x2e], cl
mov edi, dword [ebp + 0x10]
mov dl, byte [esp + 0x4f]
test dl, dl
je 0x1014aa7e
cmp byte [esp + 0x3e], 0
je 0x1014aa7e
mov byte [esp + 0x2e], 1
jmp 0x1014ab47
cmp byte [esp + 0x2e], 0
je 0x1014a989
mov edi, dword [ebp + 0x10]
test cl, cl
jne 0x1014a9ff
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ecx + edi*4]
mov ecx, dword [ecx + 0x60]
sub ecx, dword [eax + 0x60]
mov eax, 1
cmp edi, eax
jbe 0x1014a9ff
mov edx, dword [ebp + 0x14]
lea edx, [edx + edi*4 + 4]
mov edi, dword [ebp + 0x14]
lea esp, [esp]
mov ebx, dword [edx]
mov esi, dword [edi + eax*4]
mov ebx, dword [ebx + 0x60]
sub ebx, dword [esi + 0x60]
cmp ecx, ebx
jne 0x1014aa3e
inc eax
add edx, 4
cmp eax, dword [ebp + 0x10]
jb 0x1014a9e0
mov esi, dword [esp + 0x34]
mov edi, dword [ebp + 0x10]
cmp byte [esp + 0x4e], 0
jne 0x1014a98c
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + edi*4]
mov eax, dword [edx]
mov ecx, dword [ecx + 0x54]
sub ecx, dword [eax + 0x54]
mov eax, 1
cmp edi, eax
jbe 0x1014aa58
lea edx, [edx + edi*4 + 4]
mov edi, dword [ebp + 0x14]
mov ebx, dword [edx]
mov esi, dword [edi + eax*4]
mov ebx, dword [ebx + 0x54]
sub ebx, dword [esi + 0x54]
cmp ecx, ebx
jne 0x1014aa4c
inc eax
add edx, 4
cmp eax, dword [ebp + 0x10]
jb 0x1014aa24
jmp 0x1014aa51
mov esi, dword [esp + 0x34]
mov byte [esp + 0x2e], 0
jmp 0x1014a989
mov byte [esp + 0x2e], 0
mov edi, dword [ebp + 0x10]
mov esi, dword [esp + 0x34]
cmp byte [esp + 0x9e], 0
jne 0x1014a98c
cmp byte [esp + 0x87], 0
jne 0x1014a98c
mov byte [esp + 0x2e], 0
jmp 0x1014a98c
cmp byte [esp + 0x2e], 0
jne 0x1014ab47
cmp byte [esp + 0xaf], 0
je 0x1014ab34
cmp byte [esp + 0x4e], 0
je 0x1014ab34
lea eax, [edi + edi]
mov dword [esp + 0x40], 2
cmp eax, dword [ebp + 0x18]
jae 0x1014ab34
mov bl, 1
mov dword [esp + 0x90], 0
cmp eax, dword [ebp + 0x18]
jae 0x1014ab22
mov edx, dword [ebp + 0x14]
mov ecx, eax
sub ecx, eax
lea edx, [edx + ecx*4]
test bl, bl
je 0x1014ab22
mov ecx, dword [edx]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi + eax*4]
mov edi, dword [ecx + 0x64]
cmp edi, dword [esi + 0x64]
je 0x1014aae8
xor bl, bl
mov edi, dword [ecx + 0x60]
mov ecx, dword [esi + 0x60]
cmp edi, ecx
jne 0x1014aaf4
xor bl, bl
cmp dword [esp + 0x90], 0
jne 0x1014ab09
sub ecx, edi
mov dword [esp + 0x90], ecx
jmp 0x1014ab0b
xor bl, bl
inc eax
add edx, 4
cmp eax, dword [ebp + 0x18]
jb 0x1014aad2
test bl, bl
je 0x1014ab22
cmp dword [esp + 0x90], 0
jne 0x1014ab34
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
imul eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 0x18]
jb 0x1014aab6
mov edi, dword [ebp + 0x10]
mov esi, dword [esp + 0x34]
mov dl, byte [esp + 0x4f]
mov byte [esp + 0x9d], 0
test dl, dl
jne 0x1014abd9
cmp byte [ebp + 0x24], dl
je 0x1014abd9
cmp byte [esp + 0x9d], dl
jne 0x1014abd9
mov bl, byte [esp + 0x3e]
test bl, bl
je 0x1014ab73
cmp byte [esp + 0x3f], dl
je 0x1014abdd
mov al, byte [esi + 0xf4]
test al, al
jne 0x1014ab8c
cmp byte [esi + 0xf5], al
jne 0x1014ab8c
mov eax, 1
jmp 0x1014ab99
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx + 0x1c]
mov eax, ecx
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x34]
push 0x1008e020
push eax
push 0xdde
push 0xdac
call fcn.1010ad50
add esp, 0x10
lea esi, [esp + 0xf0]
mov dword [esp + 0x28], 0x80004005
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov bl, byte [esp + 0x3e]
test bl, bl
je 0x1014ac27
test dl, dl
jne 0x1014ac27
cmp dword [esi + 0xe0], 0
je 0x1014abf7
and dword [esi + 0x100], 0xfffffff7
jmp 0x1014ac27
mov eax, dword [esi + 0x100]
mov ecx, eax
shr ecx, 3
test cl, 1
je 0x1014ac27
mov ecx, eax
and ecx, 7
cmp ecx, 3
je 0x1014ac27
cmp ecx, 4
je 0x1014ac27
cmp ecx, 1
je 0x1014ac27
and eax, 0xfffffffa
or eax, 2
mov dword [esi + 0x100], eax
cmp byte [esp + 0x2e], 0
je 0x1014b74a
cmp byte [esp + 0x4e], 0
jne 0x1014ac43
cmp byte [esp + 0x87], 0
jne 0x1014ac56
cmp byte [esp + 0x3f], 0
je 0x1014afb2
test bl, bl
jne 0x1014afb2
mov eax, 1
cmp dword [ebp + 0x18], edi
jbe 0x1014ac6e
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + edi*4]
mov ecx, dword [eax]
mov eax, dword [edx + 0x54]
sub eax, dword [ecx + 0x54]
mov edx, dword [ebp + 0x20]
mov ecx, dword [edx]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], 0xffffffff
cmp eax, 1
je 0x1014acec
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x8024]
push 0
push eax
push edx
lea eax, [esp + 0x6c]
push eax
push ecx
mov eax, 0xc
call fcn.10169d70
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
push 0
push 0
push 0x11
push 0
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x58]
push eax
push 0x20500001
push ebx
mov ecx, esi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x70], eax
cmp eax, 0xffffffff
je 0x1014ad44
push 0
push 0
push 0x11
push 0
push 0
push 0
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x8c]
push edx
lea eax, [esp + 0x58]
push eax
push 0x20400001
push ebx
mov ecx, esi
mov dword [esp + 0x64], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], 0
test edi, edi
jbe 0x1014cf0d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
sub ecx, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x78], ecx
xor ebx, ebx
jmp 0x1014ad74
mov esi, dword [esp + 0x34]
mov edi, dword [esi + 8]
mov eax, dword [0x101e316c]
cmp eax, ebx
mov edx, dword [edi + 0x8040]
mov dword [esp + 0x60], edx
jge 0x1014ad8e
xor eax, eax
jmp 0x1014ad95
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], ebx
je 0x1014adbd
mov ecx, dword [eax + 0xc]
cmp ecx, ebx
jne 0x1014ada7
xor ecx, ecx
mov esi, ecx
jmp 0x1014adce
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
cmp edx, ebx
jne 0x1014adb3
mov dword [eax + 0x10], ebx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x1014adce
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
cmp esi, ebx
je 0x1014ae2c
or eax, 0xffffffff
push ebx
mov dword [esi + 0x50], eax
mov dword [esi + 0x48], eax
mov eax, dword [esp + 0x64]
push ebx
push eax
mov eax, esi
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x98], ebx
mov dword [esi + 0x24], ebx
call fcn.10165570
cmp eax, ebx
mov dword [esp + 0x28], eax
jl 0x1014ae36
push 0
mov ebx, esi
call fcn.10169830
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014ae36
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x28], 0
mov dword [ecx], esi
jmp 0x1014af4c
mov eax, 0x8007000e
jmp 0x1014af52
mov ecx, dword [esi + 0x50]
xor edi, edi
cmp ecx, edi
je 0x1014ae6a
cmp ecx, 0xffffffff
je 0x1014ae6a
mov eax, dword [esi + 4]
cmp eax, edi
je 0x1014ae51
mov edx, dword [esi]
mov dword [eax], edx
jmp 0x1014ae56
mov eax, dword [esi]
mov dword [ecx + 0x24], eax
mov eax, dword [esi]
cmp eax, edi
je 0x1014ae64
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
jmp 0x1014ae6a
mov edx, dword [esi + 4]
mov dword [ecx + 0x28], edx
mov ebx, dword [esi + 0x94]
cmp ebx, edi
je 0x1014aeb7
cmp byte [ebx + 0xc], 0
mov dword [ebx + 8], edi
je 0x1014aea9
mov edi, dword [ebx]
test edi, edi
je 0x1014aea3
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1014ae90
xor eax, eax
jmp 0x1014ae97
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebx + 0xc], 0
xor edi, edi
push ebx
mov dword [ebx], edi
mov dword [ebx + 4], edi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ebx, dword [esi + 0x98]
mov dword [esi + 0x94], edi
cmp ebx, edi
je 0x1014af0a
cmp byte [ebx + 0xc], 0
mov dword [ebx + 8], edi
je 0x1014aefc
mov edi, dword [ebx]
test edi, edi
je 0x1014aef6
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1014aee3
xor eax, eax
jmp 0x1014aeea
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebx + 0xc], 0
xor edi, edi
push ebx
mov dword [ebx], edi
mov dword [ebx + 4], edi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x98], edi
mov eax, dword [0x101e316c]
cmp eax, edi
jge 0x1014af1d
xor ebx, ebx
jmp 0x1014af26
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
push pe_nt_image_headers32
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], edi
mov eax, dword [ebx + 0x10]
add esp, 0xc
cmp eax, edi
je 0x1014af46
mov dword [eax], esi
jmp 0x1014af49
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], esi
mov eax, dword [esp + 0x28]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x28], eax
jl 0x1014d08f
mov edi, dword [esp + 0x90]
mov esi, dword [edi]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + edi]
mov eax, esi
call fcn.10165690
cmp eax, ebx
mov dword [esp + 0x28], eax
jl 0x1014d08f
or eax, 0xffffffff
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x58], eax
mov eax, dword [esp + 0x40]
inc eax
add edi, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x90], edi
cmp eax, dword [ebp + 0x10]
jb 0x1014ad70
jmp 0x1014cf0d
test dl, dl
je 0x1014b24e
test bl, bl
je 0x1014b24e
xor eax, eax
test edi, edi
jbe 0x1014afe8
mov ecx, dword [esp + 0x88]
mov edx, dword [ebp + 0x14]
imul ecx, edi
lea ecx, [edx + ecx*4]
mov edx, dword [ecx]
mov ebx, dword [ebp + 0xc]
mov dword [ebx + eax*4], edx
inc eax
add ecx, 4
cmp eax, edi
jb 0x1014afd8
xor ebx, ebx
mov dword [esp + 0x30], ebx
cmp dword [ebp + 0x10], ebx
jbe 0x1014d087
jmp 0x1014b004
mov esi, dword [esp + 0x34]
mov esi, dword [esi + 8]
mov eax, dword [esi + 0x8040]
mov dword [esp + 0x60], eax
mov eax, dword [0x101e316c]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x28], esi
jge 0x1014b024
xor eax, eax
jmp 0x1014b02b
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], edi
je 0x1014b053
mov ecx, dword [eax + 0xc]
cmp ecx, edi
jne 0x1014b03d
xor ecx, ecx
mov esi, ecx
jmp 0x1014b064
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
cmp edx, edi
jne 0x1014b049
mov dword [eax + 0x10], edi
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x1014b064
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
cmp esi, edi
je 0x1014b0c7
mov ecx, dword [esp + 0x60]
or eax, 0xffffffff
push edi
push edi
mov dword [esi + 0x50], eax
mov dword [esi + 0x48], eax
push ecx
mov eax, esi
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x24], edi
call fcn.10165570
cmp eax, edi
mov dword [esp + 0x38], eax
jl 0x1014b0d1
mov edi, dword [esp + 0x28]
push 0
mov ebx, esi
call fcn.10169830
mov dword [esp + 0x38], eax
test eax, eax
jl 0x1014b0d1
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], 0
mov dword [edx + eax*4], esi
jmp 0x1014b1f8
mov eax, 0x8007000e
jmp 0x1014b202
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x1014b103
cmp ecx, 0xffffffff
je 0x1014b103
mov eax, dword [esi + 4]
test eax, eax
je 0x1014b0ea
mov edx, dword [esi]
mov dword [eax], edx
jmp 0x1014b0ef
mov eax, dword [esi]
mov dword [ecx + 0x24], eax
mov eax, dword [esi]
test eax, eax
je 0x1014b0fd
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
jmp 0x1014b103
mov edx, dword [esi + 4]
mov dword [ecx + 0x28], edx
mov ebx, dword [esi + 0x94]
test ebx, ebx
je 0x1014b15a
cmp byte [ebx + 0xc], 0
mov dword [ebx + 8], 0
je 0x1014b144
mov edi, dword [ebx]
test edi, edi
je 0x1014b140
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1014b12d
xor eax, eax
jmp 0x1014b134
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebx + 0xc], 0
push ebx
mov dword [ebx], 0
mov dword [ebx + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ebx, dword [esi + 0x98]
xor eax, eax
mov dword [esi + 0x94], eax
cmp ebx, eax
je 0x1014b1b4
mov dword [ebx + 8], eax
cmp byte [ebx + 0xc], al
je 0x1014b19e
mov edi, dword [ebx]
test edi, edi
je 0x1014b19a
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1014b187
xor eax, eax
jmp 0x1014b18e
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebx + 0xc], 0
push ebx
mov dword [ebx], 0
mov dword [ebx + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ebx, ebx
mov dword [esi + 0x98], ebx
mov eax, dword [0x101e316c]
cmp eax, ebx
jl 0x1014b1ce
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
push pe_nt_image_headers32
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [ebx + 0x10]
add esp, 0xc
test eax, eax
je 0x1014b1f2
mov dword [eax], esi
jmp 0x1014b1f5
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], esi
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x28], eax
jl 0x1014d08f
mov eax, dword [esp + 0x88]
mov edi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
imul eax, edi
mov esi, dword [edx + ebx*4]
mov ecx, dword [ebp + 0x14]
add eax, ebx
mov edx, dword [ecx + eax*4]
mov eax, esi
call fcn.10165690
or eax, 0xffffffff
inc ebx
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x5c], eax
mov dword [esp + 0x30], ebx
cmp ebx, edi
jb 0x1014b000
jmp 0x1014d087
mov ecx, 1
cmp dword [ebp + 0x18], edi
jbe 0x1014b266
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + edi*4]
mov eax, dword [eax]
mov ecx, dword [edx + 0x60]
sub ecx, dword [eax + 0x60]
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x38], 0xffffffff
cmp ecx, 1
je 0x1014b2f2
test byte [eax + 0x7fd3], 8
je 0x1014b30c
push 0
push ecx
mov ecx, dword [eax + 0x8024]
push ecx
lea edx, [esp + 0x6c]
push edx
push eax
mov eax, 0xc
call fcn.10169d70
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
push 0
push 0
push 0x11
push 0
push 0
push 0
lea eax, [esp + 0x78]
push eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x58]
push edx
push 0x20500001
push eax
mov ecx, esi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov ecx, dword [esp + 0x38]
jmp 0x1014b3ad
test byte [eax + 0x7fcf], 8
jne 0x1014b3b1
test byte [eax + 0x7fd3], 8
jne 0x1014b3b1
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
test ecx, ecx
jge 0x1014b31e
fadd qword [0x100a3058]
mov edx, dword [eax + 0x8024]
sub esp, 8
fstp qword [esp]
push edx
lea ecx, [esp + 0x6c]
push ecx
push eax
mov eax, 4
call fcn.10169cc0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x34]
push edx
lea ebx, [esp + 0x34]
call fcn.10106f30
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
push 0
push 0
push 0x11
push 0
push 0
push 0
lea eax, [esp + 0x78]
push eax
mov ecx, ebx
push ecx
lea edx, [esp + 0x60]
push edx
push 0x20500001
mov eax, esi
push eax
mov ecx, edi
mov dword [esp + 0x6c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov ecx, dword [esp + 0x40]
mov esi, edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x90], eax
cmp eax, 0xffffffff
je 0x1014b504
mov ecx, dword [esi + 8]
test byte [ecx + 0x7fd3], 8
je 0x1014b424
push 0
push 0
push 0x11
push 0
push 0
push 0
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0x58]
push eax
push 0x20400001
push ecx
mov ecx, esi
mov dword [esp + 0x64], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov edx, dword [esp + 0x38]
mov dword [esp + 0x30], edx
jmp 0x1014b504
mov ecx, dword [ecx + 0x8040]
mov edx, dword [eax + 0x50]
lea ebx, [eax + 0x50]
mov dword [esp + 0x60], ebx
cmp edx, ecx
je 0x1014b49b
test edx, edx
je 0x1014b46c
cmp edx, 0xffffffff
je 0x1014b46c
mov esi, dword [eax + 4]
lea edi, [eax + 4]
test esi, esi
je 0x1014b455
mov ebx, dword [eax]
mov dword [esi], ebx
mov ebx, dword [esp + 0x60]
jmp 0x1014b45a
mov esi, dword [eax]
mov dword [edx + 0x24], esi
mov esi, dword [eax]
test esi, esi
je 0x1014b467
mov edx, dword [edi]
mov dword [esi + 4], edx
jmp 0x1014b46c
mov esi, dword [edi]
mov dword [edx + 0x28], esi
test ecx, ecx
je 0x1014b492
cmp ecx, 0xffffffff
je 0x1014b492
mov edx, dword [ecx + 0x28]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x1014b486
mov dword [edx], eax
jmp 0x1014b489
mov dword [ecx + 0x24], eax
mov dword [eax], 0
mov dword [ecx + 0x28], eax
mov dword [ebx], ecx
mov eax, dword [esp + 0x90]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x34]
push eax
lea ebx, [esp + 0x94]
call fcn.10106f30
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
push 0
push 0
push 0x11
push 0
push 0
push 0
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
push ecx
lea edx, [esp + 0x60]
push edx
push 0x20400001
mov eax, esi
push eax
mov ecx, edi
mov dword [esp + 0x6c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov ecx, dword [esp + 0x40]
mov esi, edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [esi + 8]
cmp dword [edx + 0x7f50], 0
je 0x1014b5db
mov edx, dword [ebp + 8]
push 0
push 0
push 0x11
push 0x20000002
push 0
push 0
push 0
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x60]
push ecx
push 0x10000001
push edx
mov ecx, esi
mov dword [esp + 0x6c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 8]
lea edx, [eax + 0x50]
mov dword [esp + 0x30], eax
mov ecx, dword [ecx + 0x8044]
mov dword [esp + 0x60], edx
mov edx, dword [edx]
cmp edx, ecx
je 0x1014b5db
test edx, edx
je 0x1014b5af
cmp edx, 0xffffffff
je 0x1014b5af
lea edi, [eax + 4]
mov dword [esp + 0x78], edi
mov edi, dword [edi]
test edi, edi
je 0x1014b58d
mov ebx, dword [eax]
mov dword [edi], ebx
jmp 0x1014b592
mov edi, dword [eax]
mov dword [edx + 0x24], edi
mov edi, dword [eax]
test edi, edi
je 0x1014b5a3
mov edx, dword [esp + 0x78]
mov edx, dword [edx]
mov dword [edi + 4], edx
jmp 0x1014b5ac
mov edi, dword [esp + 0x78]
mov edi, dword [edi]
mov dword [edx + 0x28], edi
mov edi, dword [ebp + 0x10]
test ecx, ecx
je 0x1014b5d5
cmp ecx, 0xffffffff
je 0x1014b5d5
mov edx, dword [ecx + 0x28]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x1014b5c9
mov dword [edx], eax
jmp 0x1014b5cc
mov dword [ecx + 0x24], eax
mov dword [eax], 0
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [esp + 0x70], 0
test edi, edi
jbe 0x1014cf0d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
sub ecx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], ecx
xor edi, edi
jmp 0x1014b604
mov esi, dword [esp + 0x34]
mov esi, dword [esi + 8]
mov eax, dword [0x101e316c]
cmp eax, edi
mov ebx, dword [esi + 0x8040]
mov dword [esp + 0x28], esi
jge 0x1014b61e
xor eax, eax
jmp 0x1014b625
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], edi
je 0x1014b64d
mov ecx, dword [eax + 0xc]
cmp ecx, edi
jne 0x1014b637
xor ecx, ecx
mov esi, ecx
jmp 0x1014b65e
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
cmp edx, edi
jne 0x1014b643
mov dword [eax + 0x10], edi
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x1014b65e
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
cmp esi, edi
je 0x1014b6ac
or eax, 0xffffffff
push edi
push edi
mov dword [esi + 0x50], eax
mov dword [esi + 0x48], eax
push ebx
mov eax, esi
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x24], edi
call fcn.10165570
mov ebx, eax
cmp ebx, edi
jl 0x1014b6b3
mov edi, dword [esp + 0x28]
push 0
mov ebx, esi
call fcn.10169830
mov ebx, eax
test ebx, ebx
jl 0x1014b6b3
mov ecx, dword [esp + 0x40]
xor ebx, ebx
mov dword [ecx], esi
jmp 0x1014b6fa
mov ebx, 0x8007000e
jmp 0x1014b6fc
mov edi, esi
call fcn.101654a0
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1014b6c7
xor edi, edi
jmp 0x1014b6d0
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push pe_nt_image_headers32
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x1014b6f4
mov dword [eax], esi
jmp 0x1014b6f7
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], esi
xor edi, edi
cmp ebx, edi
mov dword [esp + 0x28], ebx
jl 0x1014d08f
mov ebx, dword [esp + 0x40]
mov esi, dword [ebx]
mov edx, dword [esp + 0x78]
mov edx, dword [ebx + edx]
mov eax, esi
call fcn.10165690
or eax, 0xffffffff
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x70]
inc eax
add ebx, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x40], ebx
cmp eax, dword [ebp + 0x10]
jb 0x1014b600
jmp 0x1014cf0d
cmp byte [esp + 0x9f], 0
jne 0x1014b7d6
mov ecx, dword [esp + 0x7c]
and ecx, 0x60
xor eax, eax
or eax, ecx
mov edx, 0x1008225c
je 0x1014b76f
mov edx, 0x100822e0
mov al, byte [esi + 0xf4]
test al, al
jne 0x1014b788
cmp byte [esi + 0xf5], al
jne 0x1014b788
mov eax, 1
jmp 0x1014b795
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx + 0x1c]
mov eax, ecx
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x34]
push edx
push 0x1008e068
push eax
push 0xdde
push 0xdb8
call fcn.1010ad50
add esp, 0x14
lea esi, [esp + 0xf0]
mov dword [esp + 0x28], 0x80004005
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov edx, dword [ebp + 0x20]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x4c]
test eax, eax
je 0x1014cdb2
mov eax, dword [eax*4 + 0x101e0f10]
shr eax, 9
test al, 1
je 0x1014b824
mov eax, dword [ecx + 0x40]
and eax, 0x100000
xor ebx, ebx
or eax, ebx
je 0x1014b824
fldz
fcomp qword [ecx + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x1014b824
fld1
fcomp qword [ecx + 0xd8]
fnstsw ax
test ah, 1
je 0x1014cdb2
mov ecx, dword [esp + 0xa0]
sub ecx, dword [esp + 0x88]
mov eax, dword [esp + 0xa4]
sbb eax, dword [esp + 0x8c]
test eax, eax
ja 0x1014c370
jb 0x1014b853
cmp ecx, 4
ja 0x1014c370
cmp edi, 1
jne 0x1014b864
cmp byte [esp + 0x9c], 0
je 0x1014b878
jmp 0x1014b86d
cmp edi, 4
ja 0x1014c370
cmp byte [esp + 0x3f], 0
je 0x1014c370
cmp byte [esi + 0xf4], 0
jne 0x1014b88a
cmp byte [esi + 0xf5], 0
je 0x1014b8c1
cmp edi, 1
ja 0x1014b89b
mov ecx, dword [esi + 8]
test byte [ecx + 0x7fd2], 8
jne 0x1014b8c1
mov eax, dword [esi + 0x100]
mov ecx, eax
and ecx, 7
cmp ecx, 3
je 0x1014b8c1
cmp ecx, 4
je 0x1014b8c1
cmp ecx, 1
je 0x1014b8c1
and eax, 0xfffffffa
or eax, 2
mov dword [esi + 0x100], eax
mov ebx, dword [esp + 0xa0]
sub ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 8]
lea esi, [ebx*8]
sub esi, ebx
xor edx, edx
add esi, 4
mov dword [esp + 0x30], ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 2
mov dword [esp + 0x50], edx
mov dword [esp + 0x5c], edx
cmp esi, 0x3ffffffd
jbe 0x1014b90b
mov eax, 0x80070216
jmp 0x1014b940
lea eax, [esi*4]
test eax, eax
jne 0x1014b91b
mov eax, 4
add ecx, 0x8158
mov dword [esp + 0x5c], eax
call fcn.100daff0
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x50]
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
test esi, esi
jbe 0x1014b959
mov ecx, esi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, edx
xor ecx, ecx
lea ecx, [ecx]
mov dword [esp + ecx*4 + 0xb0], eax
inc ecx
add eax, 4
cmp ecx, 4
jb 0x1014b960
add ebx, ebx
mov ecx, 4
add ebx, ebx
lea esp, [esp]
mov dword [esp + ecx*4 + 0xb0], eax
inc ecx
add eax, ebx
cmp ecx, 0xb
jb 0x1014b980
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], edx
test byte [ecx + 0x7fd3], 8
jne 0x1014b9e9
mov eax, dword [edx + 0x40]
and eax, 0x100000
xor esi, esi
or eax, esi
jne 0x1014b9e9
test byte [ecx + 0x7fd2], 8
je 0x1014b9c8
test byte [ecx + 0x7fcf], 8
jne 0x1014b9e9
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x34]
push edx
lea ebx, [esp + 0x3c]
call fcn.10106f30
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 8]
test byte [ecx + 0x7fd2], 8
je 0x1014bde5
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
test edx, edx
ja 0x1014ba17
test eax, eax
jbe 0x1014bbf5
test byte [ecx + 0x7fd3], 8
je 0x1014bb51
neg eax
cdq
push edx
mov edx, dword [ecx + 0x8024]
push eax
push edx
lea eax, [esp + 0x6c]
push eax
push ecx
mov eax, 0xb
call fcn.10169d70
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
push 0
push 0
push 0x11
push 0
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x90]
push eax
push 0x20400001
push ecx
mov ecx, edi
mov dword [esp + 0x9c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x38], ebx
mov edx, dword [ebx + 0xe0]
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ebx + 0xe4]
mov esi, dword [ebx + 0xe8]
mov dword [esp + 0x78], edx
mov edx, dword [ecx*4 + 0x101e0f10]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0xec]
and edx, 0xf
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
cmp dl, 3
jne 0x1014bae8
lea esi, [esp + 0x40]
lea ecx, [esp + 0x78]
call fcn.101a4b10
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x7c], 0
jg 0x1014bbf5
jl 0x1014bb00
cmp dword [esp + 0x78], 0
jae 0x1014bbf5
test eax, eax
jl 0x1014bbf5
jg 0x1014bb12
test esi, esi
jb 0x1014bbf5
push eax
mov eax, dword [edi + 8]
push esi
push 0
push 0
push eax
mov ecx, ebx
call fcn.10166b20
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014bbf5
lea esi, [esp + 0x50]
call fcn.100da650
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov dword [esp + 0x60], eax
mov eax, edx
and eax, 0x7fffffff
mov dword [esp + 0x64], eax
fild qword [esp + 0x60]
and edx, 0x80000000
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], 0
fild qword [esp + 0x60]
mov edx, dword [ecx + 0x8024]
sub esp, 8
fchs
lea eax, [esp + 0x68]
faddp st(1)
fchs
fstp qword [esp]
push edx
push eax
push ecx
mov eax, 4
call fcn.10169cc0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
push 0
push 0
push 0x11
push 0x20000002
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x90]
push eax
push 0x20400001
push ecx
mov ecx, edi
mov dword [esp + 0x9c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0x70]
mov dword [esp + 0x38], edx
mov eax, dword [edi + 8]
cmp dword [eax + 0x7f50], 0
je 0x1014bce1
mov dword [esp + 0x70], 0xffffffff
mov al, byte [eax + 0x7fd3]
and al, 8
movzx eax, al
push 0
push 0
neg eax
push 0x11
sbb eax, eax
and eax, 0xdffffffe
add eax, 0x20000002
push eax
mov eax, dword [ebp + 8]
push 0
push 0
push 0
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x90]
push edx
push 0x10000001
push eax
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0x70]
mov ecx, dword [edi + 8]
lea edx, [eax + 0x50]
mov dword [esp + 0x38], eax
mov ecx, dword [ecx + 0x8044]
mov dword [esp + 0x60], edx
mov edx, dword [edx]
cmp edx, ecx
je 0x1014bce1
test edx, edx
je 0x1014bcb5
cmp edx, 0xffffffff
je 0x1014bcb5
lea esi, [eax + 4]
mov dword [esp + 0x40], esi
mov esi, dword [esi]
test esi, esi
je 0x1014bc96
mov ebx, dword [eax]
mov dword [esi], ebx
jmp 0x1014bc9b
mov esi, dword [eax]
mov dword [edx + 0x24], esi
mov esi, dword [eax]
test esi, esi
je 0x1014bcac
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
mov dword [esi + 4], edx
jmp 0x1014bcb5
mov esi, dword [esp + 0x40]
mov esi, dword [esi]
mov dword [edx + 0x28], esi
test ecx, ecx
je 0x1014bcdb
cmp ecx, 0xffffffff
je 0x1014bcdb
mov edx, dword [ecx + 0x28]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x1014bccf
mov dword [edx], eax
jmp 0x1014bcd2
mov dword [ecx + 0x24], eax
mov dword [eax], 0
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [eax], ecx
xor esi, esi
cmp dword [esp + 0x30], esi
jbe 0x1014c115
mov ebx, dword [esp + 0xd4]
xor ecx, ecx
cmp byte [esp + 0x2f], cl
sete cl
lea ecx, [ecx*8 + 4]
mov dword [esp + 0x40], ecx
cmp byte [esp + 0x2f], 0
je 0x1014bd17
mov eax, dword [edi + 0xe8]
jmp 0x1014bd1d
mov eax, dword [edi + 0xec]
mov edx, dword [esp + 0x40]
push edx
push esi
push 0
push eax
mov eax, dword [edi + 8]
push ebx
push eax
call fcn.10169c20
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bd9c
cmp byte [esp + 0x2f], 0
mov ecx, dword [ebx]
mov edx, dword [esp + 0x38]
mov dword [ecx + 0x5c], edx
mov eax, dword [edi + 8]
je 0x1014bd6f
fld1
mov edx, dword [ecx + 0x44]
or dword [ecx + 0x40], 0x180000
sub esp, 0x10
fstp qword [esp + 8]
mov dword [ecx + 0x44], edx
fldz
fstp qword [esp]
push eax
push ecx
call fcn.10166580
jmp 0x1014bd7d
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.10166b20
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
inc esi
add ebx, 4
cmp esi, dword [esp + 0x30]
jb 0x1014bd08
jmp 0x1014c115
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add edi, 0x8158
cmp dword [esp + 0x50], 0
je 0x1014d08f
test eax, eax
ja 0x1014bdbe
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x1014ce69
sub dword [ebx + 8], eax
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
xor ebx, ebx
cmp dword [esp + 0x30], ebx
jbe 0x1014bf30
sub ecx, eax
mov esi, eax
mov dword [esp + 0x60], ecx
jmp 0x1014be18
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x88]
mov dword [ecx + esi], edx
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 8]
xor eax, eax
test byte [ecx + 0x7fd3], 8
mov edx, ebx
je 0x1014beb3
add edx, edi
adc eax, dword [esp + 0x8c]
push eax
push edx
mov edx, dword [ecx + 0x8024]
push edx
push esi
push ecx
mov eax, 0xc
call fcn.10169d70
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014bf10
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add edi, 0x8158
cmp dword [esp + 0x50], 0
je 0x1014d08f
test eax, eax
ja 0x1014be86
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jb 0x1014bdc9
mov ecx, dword [ebx]
mov dword [edi], ecx
call fcn.100daed0
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
add edx, edi
adc eax, dword [esp + 0x8c]
mov dword [esp + 0x70], edx
mov edx, eax
and eax, 0x7fffffff
mov dword [esp + 0x74], eax
fild qword [esp + 0x70]
mov eax, dword [ecx + 0x8024]
and edx, 0x80000000
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], 0
fild qword [esp + 0x40]
sub esp, 8
fchs
faddp st(1)
fchs
fstp qword [esp]
push eax
push esi
push ecx
mov eax, 4
call fcn.10169cc0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bfbb
inc ebx
add esi, 4
cmp ebx, dword [esp + 0x30]
jb 0x1014be10
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edx, dword [edi + 8]
push 0
and esi, 0xfffff
test byte [edx + 0x7fd3], 8
push 0
push 0x11
je 0x1014c032
mov ebx, dword [esp + 0xd4]
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [ebp + 8]
push ebx
mov eax, esi
or eax, 0x21000000
push eax
push ecx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bfbb
cmp byte [esp + 0x2f], 0
je 0x1014c00a
mov eax, dword [esp + 0xd4]
mov ecx, dword [ebp + 8]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push ebx
push eax
or esi, 0x12d00000
push esi
push ecx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014c115
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add edi, 0x8158
cmp dword [esp + 0x50], 0
je 0x1014d08f
test eax, eax
ja 0x1014bfdd
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jb 0x1014bdc9
mov edx, dword [ebx]
mov dword [edi], edx
call fcn.100daed0
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov ecx, dword [esp + 0x30]
test ecx, ecx
jbe 0x1014c115
mov eax, dword [esp + 0xd4]
sub ebx, eax
nop
mov edx, dword [ebx + eax]
mov dword [eax], edx
add eax, 4
sub ecx, 1
jne 0x1014c020
jmp 0x1014c115
mov ebx, dword [ebp + 8]
push 0x20
push 0
push 0
push eax
mov eax, dword [esp + 0xe4]
push ecx
push eax
mov ecx, esi
or ecx, 0x20400000
push ecx
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014c0a7
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add edi, 0x8158
cmp dword [esp + 0x50], 0
je 0x1014d08f
test eax, eax
ja 0x1014c080
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x1014bfe8
sub dword [ebx + 8], eax
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0x34]
push ecx
push edx
push ebx
push edi
call fcn.10106b20
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
push 0
push 0
push 0x11
push 0
push 0
push 0
push eax
push ecx
push edx
or esi, 0x20300000
push esi
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
cmp dword [ebp + 0x10], 0
jbe 0x1014c12a
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x34]
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x40], 0
jbe 0x1014c362
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x90], eax
xor eax, eax
cmp dword [esp + 0x30], eax
jbe 0x1014c181
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x88]
imul esi, ecx
add esi, dword [esp + 0x40]
lea edx, [ecx*4]
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx + esi*4]
mov esi, dword [esp + 0xd8]
mov ebx, dword [ecx]
mov dword [esi + eax*4], ebx
inc eax
add ecx, edx
cmp eax, dword [esp + 0x30]
jb 0x1014c173
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0xd8]
mov ebx, dword [ebp + 8]
push esi
push eax
push eax
push ebx
push edi
call fcn.101063a0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
cmp byte [esp + 0x2f], 0
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xd8]
push 0
push 0
push 0x11
push 0
push 0
push 0
push edx
push eax
je 0x1014c1e2
mov ecx, dword [esp + 0xb0]
and esi, 0xfffff
push ecx
or esi, 0x50000000
push esi
jmp 0x1014c334
mov ecx, dword [esp + 0xec]
mov edx, esi
push ecx
and edx, 0xfffff
or edx, 0x22100000
push edx
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0xcc]
mov ecx, dword [edx]
mov dword [esp + 0x78], ecx
cmp esi, 1
jbe 0x1014c224
mov eax, dword [edx + 4]
jmp 0x1014c24c
mov eax, dword [ecx + 0x4c]
cmp eax, 0xe
ja case.0x1014c233.1
movzx eax, byte [eax + 0x1014d0b8]
jmp dword [eax*4 + 0x1014d0a8]
mov eax, dword [edi + 0x54]
jmp 0x1014c24c
mov eax, dword [edi + 0x64]
jmp 0x1014c24c
mov eax, dword [edi + 0x48]
jmp 0x1014c24c
mov eax, dword [edi + 0x74]
mov dword [esp + 0x60], eax
cmp esi, 2
jbe 0x1014c25a
mov ecx, dword [edx + 8]
jmp 0x1014c282
mov ecx, dword [ecx + 0x4c]
cmp ecx, 0xe
ja case.0x1014c269.1
movzx ecx, byte [ecx + 0x1014d0d8]
jmp dword [ecx*4 + 0x1014d0c8]
mov ecx, dword [edi + 0x54]
jmp 0x1014c282
mov ecx, dword [edi + 0x64]
jmp 0x1014c282
mov ecx, dword [edi + 0x48]
jmp 0x1014c282
mov ecx, dword [edi + 0x74]
mov dword [esp + 0x7c], ecx
cmp esi, 3
jbe 0x1014c294
mov edx, dword [edx + 0xc]
mov dword [esp + 0x64], edx
jmp 0x1014c2c0
mov eax, dword [eax + 0x4c]
cmp eax, 0xe
ja case.0x1014c2a3.1
movzx eax, byte [eax + 0x1014d0f8]
jmp dword [eax*4 + 0x1014d0e8]
mov eax, dword [edi + 0x54]
jmp 0x1014c2bc
mov eax, dword [edi + 0x64]
jmp 0x1014c2bc
mov eax, dword [edi + 0x48]
jmp 0x1014c2bc
mov eax, dword [edi + 0x74]
mov dword [esp + 0x64], eax
push 0
push 0
push 0x11
push 0
push 0
push 0
or eax, 0xffffffff
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
lea eax, [esp + 0x90]
push eax
push 0x22200002
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0x90]
push 0
push 0
push 0x11
push 0
push 0
push 0
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x8c]
push edx
push eax
push 0x22200001
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0x40]
add dword [esp + 0x90], 4
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [ebp + 0x10]
jb 0x1014c146
lea esi, [esp + 0x50]
call fcn.100da650
jmp 0x1014cf0d
cmp byte [esi + 0xf4], 0
jne 0x1014c382
cmp byte [esi + 0xf5], 0
je 0x1014c3a8
mov eax, dword [esi + 0x100]
mov ecx, eax
and ecx, 7
cmp ecx, 3
je 0x1014c3a8
cmp ecx, 4
je 0x1014c3a8
cmp ecx, 1
je 0x1014c3a8
and eax, 0xfffffffa
or eax, 2
mov dword [esi + 0x100], eax
mov ebx, dword [esp + 0xa0]
sub ebx, dword [esp + 0x88]
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x34]
add eax, eax
add eax, eax
lea ecx, [ebx + ebx*2]
lea edi, [eax + ecx*2 + 4]
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov eax, dword [edx + 8]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x54]
mov esi, 2
push edx
push eax
lea ecx, [esi + 2]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
call fcn.100db050
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0x50]
test edi, edi
jbe 0x1014c41a
mov ecx, edi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, edx
xor ecx, ecx
mov edi, edi
mov dword [esp + ecx*4 + 0xb0], eax
inc ecx
add eax, 4
cmp ecx, 4
jb 0x1014c420
add ebx, ebx
mov ecx, 4
add ebx, ebx
lea esp, [esp]
mov dword [esp + ecx*4 + 0xb0], eax
inc ecx
add eax, ebx
cmp ecx, 0xa
jb 0x1014c440
mov edx, dword [esp + 0x60]
mov ecx, 0xa
jmp 0x1014c460
mov dword [esp + ecx*4 + 0xb0], eax
inc ecx
add eax, edx
cmp ecx, 0xe
jb 0x1014c460
mov eax, dword [ebp + 0x20]
mov edi, dword [esp + 0x34]
mov edx, dword [eax]
mov ecx, dword [edi + 8]
mov dword [esp + 0x38], edx
test byte [ecx + 0x7fd3], 8
jne 0x1014c4af
mov eax, dword [edx + 0x40]
and eax, 0x100000
xor ecx, ecx
or eax, ecx
jne 0x1014c4af
mov esi, dword [ebp + 8]
push edx
lea ebx, [esp + 0x3c]
call fcn.10106f30
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov ecx, dword [edi + 8]
test byte [ecx + 0x7fd2], 8
je 0x1014c879
cmp dword [esp + 0x30], 4
ja 0x1014c879
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
test edx, edx
ja 0x1014c4e4
test eax, eax
jbe 0x1014c6d5
test byte [ecx + 0x7fd3], 8
je 0x1014c62d
neg eax
cdq
push edx
mov edx, dword [ecx + 0x8024]
push eax
push edx
lea eax, [esp + 0x4c]
push eax
push ecx
mov eax, 0xb
call fcn.10169d70
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
push 0
push 0
push 0x11
push 0
push 0
push 0
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x90]
push eax
push 0x20400001
push ecx
mov ecx, edi
mov dword [esp + 0x9c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x38], ebx
mov edx, dword [ebx + 0xe0]
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ebx + 0xe4]
mov esi, dword [ebx + 0xe8]
mov dword [esp + 0x90], edx
mov edx, dword [ecx*4 + 0x101e0f10]
mov dword [esp + 0x94], eax
mov eax, dword [ebx + 0xec]
and edx, 0xf
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
cmp dl, 3
jne 0x1014c5be
lea esi, [esp + 0x78]
lea ecx, [esp + 0x90]
call fcn.101a4b10
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
cmp dword [esp + 0x94], 0
jg 0x1014c6d5
jl 0x1014c5dc
cmp dword [esp + 0x90], 0
jae 0x1014c6d5
test eax, eax
jl 0x1014c6d5
jg 0x1014c5ee
test esi, esi
jb 0x1014c6d5
push eax
mov eax, dword [edi + 8]
push esi
push 0
push 0
push eax
mov ecx, ebx
call fcn.10166b20
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014c6d5
lea esi, [esp + 0x50]
call fcn.100da650
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov dword [esp + 0x70], eax
mov eax, edx
and eax, 0x7fffffff
mov dword [esp + 0x74], eax
fild qword [esp + 0x70]
and edx, 0x80000000
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], 0
fild qword [esp + 0x70]
mov edx, dword [ecx + 0x8024]
sub esp, 8
fchs
lea eax, [esp + 0x48]
faddp st(1)
fchs
fstp qword [esp]
push edx
push eax
push ecx
mov eax, 4
call fcn.10169cc0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
push 0
push 0
push 0x11
push 0x20000002
push 0
push 0
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x90]
push eax
push 0x20400001
push ecx
mov ecx, edi
mov dword [esp + 0x9c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0x70]
mov dword [esp + 0x38], edx
mov eax, dword [edi + 8]
cmp dword [eax + 0x7f50], 0
je 0x1014c7b3
mov eax, dword [ebp + 8]
push 0
push 0
push 0x11
push 0x20000002
push 0
push 0
push 0
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x90]
push edx
push 0x10000001
push eax
mov ecx, edi
mov dword [esp + 0x9c], 0xffffffff
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0x70]
mov ecx, dword [edi + 8]
lea edx, [eax + 0x50]
mov dword [esp + 0x38], eax
mov ecx, dword [ecx + 0x8044]
mov dword [esp + 0x78], edx
mov edx, dword [edx]
cmp edx, ecx
je 0x1014c7b3
test edx, edx
je 0x1014c787
cmp edx, 0xffffffff
je 0x1014c787
lea esi, [eax + 4]
mov dword [esp + 0x40], esi
mov esi, dword [esi]
test esi, esi
je 0x1014c768
mov ebx, dword [eax]
mov dword [esi], ebx
jmp 0x1014c76d
mov esi, dword [eax]
mov dword [edx + 0x24], esi
mov esi, dword [eax]
test esi, esi
je 0x1014c77e
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
mov dword [esi + 4], edx
jmp 0x1014c787
mov esi, dword [esp + 0x40]
mov esi, dword [esi]
mov dword [edx + 0x28], esi
test ecx, ecx
je 0x1014c7ad
cmp ecx, 0xffffffff
je 0x1014c7ad
mov edx, dword [ecx + 0x28]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x1014c7a1
mov dword [edx], eax
jmp 0x1014c7a4
mov dword [ecx + 0x24], eax
mov dword [eax], 0
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x78]
mov dword [eax], ecx
xor ebx, ebx
cmp dword [esp + 0x30], ebx
jbe 0x1014caf1
mov esi, dword [esp + 0xd4]
xor ecx, ecx
cmp byte [esp + 0x2f], cl
sete cl
lea ecx, [ecx*8 + 4]
mov dword [esp + 0x40], ecx
cmp byte [esp + 0x2f], 0
je 0x1014c7e9
mov eax, dword [edi + 0xe8]
jmp 0x1014c7ef
mov eax, dword [edi + 0xec]
mov edx, dword [esp + 0x40]
push edx
push ebx
push 0
push eax
mov eax, dword [edi + 8]
push esi
push eax
call fcn.10169c20
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esi]
call fcn.10165fc0
cmp byte [esp + 0x2f], 0
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x5c], ecx
mov ecx, dword [edi + 8]
je 0x1014c84a
fld1
mov edx, dword [eax + 0x44]
or dword [eax + 0x40], 0x180000
sub esp, 0x10
fstp qword [esp + 8]
mov dword [eax + 0x44], edx
fldz
fstp qword [esp]
push ecx
push eax
call fcn.10166580
jmp 0x1014c85a
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, eax
call fcn.10166b20
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
inc ebx
add esi, 4
cmp ebx, dword [esp + 0x30]
jb 0x1014c7da
jmp 0x1014caf1
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
xor eax, eax
mov dword [esp + 0x70], eax
cmp dword [esp + 0x30], eax
jbe 0x1014c97e
mov ebx, edx
sub ebx, ecx
mov esi, ecx
mov dword [esp + 0x40], ebx
jmp 0x1014c8b4
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x88]
mov dword [ebx + esi], ecx
mov ecx, dword [edi + 8]
test byte [ecx + 0x7fd3], 8
je 0x1014c8f0
xor ebx, ebx
add eax, edx
adc ebx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x8024]
push ebx
push eax
push edx
push esi
push ecx
mov eax, 0xb
call fcn.10169d70
jmp 0x1014c94e
mov ebx, eax
xor eax, eax
add ebx, edx
adc eax, dword [esp + 0x8c]
mov dword [esp + 0x78], ebx
mov edx, eax
and eax, 0x7fffffff
mov dword [esp + 0x7c], eax
fild qword [esp + 0x78]
mov eax, dword [ecx + 0x8024]
and edx, 0x80000000
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], 0
fild qword [esp + 0x90]
sub esp, 8
fchs
faddp st(1)
fchs
fstp qword [esp]
push eax
push esi
push ecx
mov eax, 4
call fcn.10169cc0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0x70]
inc eax
add esi, 4
mov dword [esp + 0x70], eax
cmp eax, dword [esp + 0x30]
jb 0x1014c8b0
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x30]
mov eax, dword [edi + 8]
push 0
and esi, 0xfffff
test byte [eax + 0x7fd3], 8
push 0
push 0x11
je 0x1014ca53
mov ebx, dword [esp + 0xd4]
push 0
push 0
push 0
push ecx
push edx
mov edx, dword [ebp + 8]
push ebx
mov ecx, esi
or ecx, 0x21000000
push ecx
push edx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
cmp byte [esp + 0x2f], 0
je 0x1014ca2c
mov eax, dword [esp + 0xd4]
mov ecx, dword [ebp + 8]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push ebx
push eax
or esi, 0x12d00000
push esi
push ecx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014caf1
lea esi, [esp + 0x50]
call fcn.100da650
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov ecx, dword [esp + 0x30]
test ecx, ecx
jbe 0x1014caf1
mov eax, dword [esp + 0xd4]
sub ebx, eax
mov edx, dword [ebx + eax]
mov dword [eax], edx
add eax, 4
sub ecx, 1
jne 0x1014ca41
jmp 0x1014caf1
mov eax, dword [esp + 0xd4]
mov ebx, dword [ebp + 8]
push 0x20
push 0
push 0
push ecx
push edx
push eax
mov ecx, esi
or ecx, 0x20400000
push ecx
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
push edx
push eax
mov eax, dword [esp + 0x38]
push ecx
push ebx
push edi
call fcn.10106b20
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
push 0
push 0
push 0x11
push 0
push 0
push 0
push edx
push eax
push ecx
or esi, 0x20300000
push esi
push ebx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov ebx, dword [ebp + 0x10]
xor eax, eax
test ebx, ebx
jbe 0x1014cb17
mov edx, dword [ebp + 0xc]
lea ecx, [ecx]
cmp byte [esp + 0x2f], 0
je 0x1014cb0c
mov ecx, dword [edi + 0x74]
jmp 0x1014cb0f
mov ecx, dword [edi + 0x64]
mov dword [edx + eax*4], ecx
inc eax
cmp eax, ebx
jb 0x1014cb00
cmp dword [esp + 0x30], 0
mov dword [esp + 0x90], 0
jbe 0x1014c362
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0xd4]
imul eax, ebx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x78], edx
lea edx, [ecx + eax*4]
mov dword [esp + 0x40], edx
lea esp, [esp]
test ebx, ebx
jbe 0x1014cbcc
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xe4]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x40]
sub edx, eax
sub esi, eax
sub edi, eax
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x78]
mov ebx, dword [ebx]
mov dword [edx + eax], ebx
mov ebx, dword [eax]
mov dword [esi + eax], ebx
mov ebx, dword [ecx]
mov dword [edi + eax], ebx
add eax, 4
add ecx, 4
sub dword [esp + 0x70], 1
jne 0x1014cb81
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
lea edx, [ebx*4]
mov ecx, edx
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xe0]
mov ecx, edx
shr ecx, 2
or eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0xdc]
push ebx
push eax
push eax
mov eax, dword [ebp + 8]
push eax
push edi
call fcn.101063a0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov esi, dword [esp + 0xe4]
mov ecx, dword [ebp + 8]
push ebx
push esi
push esi
push ecx
push edi
call fcn.101063a0
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
cmp byte [esp + 0x2f], 0
je 0x1014ccc2
mov eax, dword [edi + 8]
test byte [eax + 0x7fcd], 2
je 0x1014cc52
test byte [eax + 0x7fcc], 4
jne 0x1014cc52
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0xdc]
mov ecx, dword [ebp + 0xc]
push ebx
push edx
mov edx, dword [ebp + 8]
push esi
push eax
push ecx
push edx
mov ecx, edi
call fcn.10145170
jmp 0x1014cd72
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [ebp + 0xc]
push 0
push 0
push 0x11
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [ebp + 8]
mov esi, ebx
and esi, 0xfffff
push edx
mov eax, esi
or eax, 0x20500000
push eax
push ecx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0xdc]
mov eax, dword [ebp + 0xc]
push 0
push 0
push 0x11
push 0
push 0
push 0
push edx
push eax
push eax
mov eax, dword [ebp + 8]
or esi, 0x20400000
push esi
push eax
jmp 0x1014cd6b
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
push 0
push 0
push 0xc
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 8]
mov esi, ebx
and esi, 0xfffff
push edx
mov eax, esi
or eax, 0x10000000
push eax
push ecx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xd8]
mov ecx, dword [ebp + 0xc]
push 0
push 0
push 0xc
push 0
push 0
push 0
push edx
push eax
mov eax, dword [ebp + 8]
push ecx
mov edx, esi
or edx, 0x22100000
push edx
push eax
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov ecx, dword [esp + 0xdc]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0
push 0
push 0xc
push 0
push 0
push 0
push ecx
push eax
push eax
or esi, 0x22200000
push esi
push edx
mov ecx, edi
call fcn.10122240
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014bb2f
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x60]
add dword [esp + 0x40], ecx
add dword [esp + 0x78], 4
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esp + 0x30]
jb 0x1014cb50
lea esi, [esp + 0x50]
call fcn.100da650
jmp 0x1014cf0d
mov eax, dword [esi + 8]
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], ebx
cmp edi, 0x3ffffffd
jbe 0x1014cdd3
mov eax, 0x80070216
jmp 0x1014ce46
lea eax, [edi*4]
test eax, eax
jne 0x1014cde3
mov eax, 4
mov esi, dword [esp + 0x54]
add esi, 0x8158
mov dword [esp + 0x5c], eax
mov ebx, eax
test eax, eax
ja 0x1014cdfc
mov ebx, 1
mov eax, dword [esi]
test eax, eax
je 0x1014ce0c
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ebx, ecx
jbe 0x1014ce1b
mov ecx, ebx
call fcn.100daf50
test eax, eax
je 0x1014ce1b
xor eax, eax
jmp 0x1014ce2f
mov ecx, dword [esi]
test ecx, ecx
je 0x1014ce2a
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x1014ce2c
xor eax, eax
add dword [ecx + 8], ebx
mov edx, dword [ebp + 0x20]
mov ebx, dword [esp + 0x5c]
mov esi, eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov dword [esp + 0x28], eax
test eax, eax
jge 0x1014ce8b
mov edi, dword [esp + 0x54]
add edi, 0x8158
mov eax, ebx
test esi, esi
je 0x1014d08f
test ebx, ebx
jmp 0x1014bdb7
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
xor eax, eax
test edi, edi
jbe 0x1014cead
mov ecx, dword [edx]
mov dword [esi + eax*4], ecx
inc eax
cmp eax, edi
jb 0x1014ce91
test edi, edi
jbe 0x1014cead
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
push edi
push esi
lea edx, [eax + edi*4]
push edx
push eax
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.10145170
mov edi, dword [esp + 0x54]
add edi, 0x8158
mov dword [esp + 0x28], eax
test eax, eax
mov eax, ebx
jge 0x1014ceeb
test esi, esi
je 0x1014d08f
test ebx, ebx
jmp 0x1014bfd6
test esi, esi
je 0x1014cf0d
test ebx, ebx
ja 0x1014cef8
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x1014cf04
sub dword [ebx + 8], eax
jmp 0x1014cf0d
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x40], 0
jbe 0x1014d087
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x70], ecx
jmp 0x1014cf35
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + eax]
mov ebx, dword [eax]
mov edx, dword [ebx + 0x4c]
mov eax, dword [ecx + 0x44]
and dword [ecx + 0x40], 0xffe5ffef
lea esi, [ecx + 0x40]
mov dword [ecx + 0x4c], edx
mov dword [esi + 4], eax
mov edx, dword [ebx + 0x40]
and edx, 0x1a0010
or dword [esi], edx
and dword [esi], 0xffffffef
mov dword [esp + 0x78], ecx
mov dword [esi + 4], eax
call fcn.1012dfa0
mov edi, dword [esi + 4]
mov ecx, dword [esi]
and al, 1
movzx eax, al
cdq
shld edx, eax, 4
or edx, edi
mov dword [esi + 4], edx
lea edx, [esp + 0xb0]
shl eax, 4
and ecx, 0xffffffef
push edx
or eax, ecx
push 1
mov dword [esi], eax
call fcn.10165c30
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x94], eax
cmp eax, dword [esp + 0xa4]
ja 0x1014d043
jb 0x1014cfd4
cmp edi, dword [esp + 0xa0]
jae 0x1014d043
mov ecx, dword [ebp + 0x14]
mov eax, edi
imul eax, dword [ebp + 0x10]
add eax, dword [esp + 0x40]
lea edx, [esp + 0x140]
mov ebx, dword [ecx + eax*4]
push edx
push 1
call fcn.10165c30
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x40]
push eax
push ecx
push esi
lea edx, [esp + 0x14c]
lea ecx, [esp + 0xbc]
call fcn.101191d0
mov eax, dword [esp + 0x94]
add edi, 1
adc eax, 0
mov dword [esp + 0x94], eax
cmp eax, dword [esp + 0xa4]
jb 0x1014cfd4
ja 0x1014d043
cmp edi, dword [esp + 0xa0]
jb 0x1014cfd4
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x7c]
push eax
push edx
lea eax, [esp + 0xbc]
call fcn.10166390
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1014d08f
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x60]
inc ecx
add eax, 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x60], eax
cmp ecx, dword [ebp + 0x10]
jb 0x1014cf31
mov dword [esp + 0x28], 0
lea esi, [esp + 0xf0]
call fcn.100da650
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24