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

Disassembly:
push 0xffffffffffffffff
push 0x1003c729
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push ebx
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x44], edi
cmp dword [edi], ebx
jne 0x1001b7d0
xor eax, eax
jmp 0x1001c701
push ebx
push ebx
lea ecx, [esp + 0x10]
call fcn.1001ccc0
mov dword [esp + 8], 0x1003d370
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov al, byte [0x1004ba0c]
mov dword [esp + 0xb8], ebx
test al, 1
jne 0x1001b847
mov cl, al
or cl, 1
mov byte [0x1004ba0c], cl
mov ecx, 0x1004ba20
call fcn.1001b410
push str.___:____d_.__
lea ecx, [esp + 0x6c]
call fcn.1001b360
mov eax, dword [eax + 8]
push ebx
push eax
push str.___:____d_.__
mov ecx, 0x1004ba20
mov byte [esp + 0xc4], 2
call fcn.1001b540
push 0x1001cbe0
call fcn.100305a0
add esp, 4
push ebp
push esi
lea ecx, [esp + 0xa4]
call fcn.1001b280
mov ebp, dword [esp + 0xe4]
mov byte [esp + 0xc0], 4
cmp ebp, ebx
jne 0x1001b86f
lea ebp, [esp + 0xa4]
mov ecx, dword [edi]
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0xd4]
cmp ecx, ebx
jne 0x1001b889
mov dword [esp + 0x44], ebx
jmp 0x1001b8eb
cmp eax, ebx
jne 0x1001b8ba
push 0x54
call fcn.10030d66
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebx
mov byte [esp + 0xc0], 5
je 0x1001b8b0
mov ecx, eax
call fcn.1001cc20
jmp 0x1001b8b2
xor eax, eax
mov byte [esp + 0xc0], 4
mov ecx, dword [esp + 0xd0]
mov dword [eax + 0x48], ebx
mov dword [eax + 0x44], 0xffffffff
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], esi
mov cl, byte [edi + 4]
test cl, 0x10
je 0x1001b8e1
mov dword [eax + 0x40], esi
mov dword [eax + 0x3c], esi
jmp 0x1001b8e7
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], ebx
mov dword [esp + 0x44], eax
xor edi, edi
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x90]
push edx
push eax
mov ecx, 0x1004ba20
call fcn.1001d250
mov dword [ebp + 8], ebx
mov ecx, dword [eax + 8]
cmp ecx, ebx
mov byte [esp + 0xc0], 6
jle 0x1001b930
mov eax, dword [eax + 0xc]
cmp eax, ebx
jne 0x1001b926
mov eax, 0x1003d3e8
push ebx
push ecx
push eax
mov ecx, ebp
call fcn.1001b2a0
push ebx
push ebx
mov ecx, ebp
call fcn.1001c7e0
lea ecx, [esp + 0x90]
mov esi, eax
mov byte [esp + 0xc0], 4
call fcn.1000a9f0
cmp esi, ebx
je 0x1001bf2c
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.1001c7e0
mov esi, eax
sub esi, edi
cmp esi, ebx
jle 0x1001ba0a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001b9aa
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x1001b987
mov ebx, 8
mov edx, dword [esp + 0x1c]
lea ecx, [ebx*4]
push ecx
push edx
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
jmp 0x1001b9ae
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], edi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x1001b9f6
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x1001b9d3
mov ebx, 8
mov eax, dword [esp + 0x1c]
lea edx, [ebx*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
jmp 0x1001b9fa
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.1001c7e0
mov ebx, dword [esp + 0xd0]
mov esi, eax
mov dword [esp + 0x24], esi
mov edi, 2
movsx eax, byte [esi + ebx + 1]
add eax, 0xffffffdc
cmp eax, 0x57
ja case.0x1001ba40.39
xor edx, edx
mov dl, byte [eax + 0x1001c72c]
jmp dword [edx*4 + 0x1001c71c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001ba87
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001ba60
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jmp 0x1001ba8b
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x1001be65
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001be34
jmp 0x1001be2f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001baf8
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bad1
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jmp 0x1001bafc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], 0xffffffff
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, eax
movsx ebx, byte [esi + ebx + 1]
jl 0x1001bb57
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bb2a
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
add esp, 8
mov dword [eax + edx*4], ebx
jmp 0x1001bf10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], ebx
jmp 0x1001bf10
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.1001c7e0
push 0xffffffffffffffff
push 3
mov ecx, ebp
mov esi, eax
call fcn.1001c7e0
mov edi, eax
mov eax, dword [esp + 0x24]
sub edi, esi
mov dword [esp + 0x70], 0x1003d338
lea ecx, [eax + ebx + 2]
lea edx, [edi - 3]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x4c]
xor esi, esi
mov byte [esp + 0xc0], 7
mov eax, dword [ebx + 0x58]
test eax, eax
jle 0x1001bbd7
mov ecx, dword [ebx + 0x5c]
lea eax, [esp + 0x70]
push eax
mov edx, dword [ecx + esi*4]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax]
add ecx, 0xc
call fcn.1001e1a0
test eax, eax
je 0x1001bc40
mov eax, dword [ebx + 0x58]
inc esi
cmp esi, eax
jl 0x1001bbb3
mov dword [esp + 0x48], 0xfffffffd
mov eax, dword [esp + 0x48]
mov byte [esp + 0xc0], 4
test eax, eax
mov dword [esp + 0x70], 0x1003d338
jle 0x1001bcc6
cmp eax, dword [ebx + 8]
jg 0x1001bcc6
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001bc54
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bc1d
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
jmp 0x1001bc58
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ecx + esi*4]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov dword [esp + 0x48], edx
jmp 0x1001bbdf
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], 0xfffffffe
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x1001bcb2
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bc81
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
add esp, 8
mov dword [eax + ecx*4], edx
jmp 0x1001bf10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], edx
jmp 0x1001bf10
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001bd02
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bcdf
mov esi, 8
mov eax, dword [esp + 0x1c]
lea edx, [esi*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
jmp 0x1001bd06
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x1001bd5c
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bd2f
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
add esp, 8
mov dword [eax + edx*4], edi
jmp 0x1001bf10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], edi
jmp 0x1001bf10
mov eax, dword [esp + 0x24]
xor esi, esi
mov edi, 1
add ebx, eax
mov al, byte [ebx + edi]
cmp al, 0x30
jl 0x1001bd94
cmp al, 0x39
jg 0x1001bd94
movsx edx, al
lea ecx, [esi + esi*4]
inc edi
cmp edi, 3
lea esi, [edx + ecx*2 - 0x30]
jle 0x1001bd79
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 8]
cmp esi, ecx
jle 0x1001bdc2
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
dec edi
mov esi, edx
cmp esi, ecx
jg 0x1001bd9f
test esi, esi
jne 0x1001bdc2
mov edi, 1
jmp 0x1001bdcb
cmp edi, 1
jne 0x1001be79
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001be07
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bde4
mov esi, 8
mov edx, dword [esp + 0x1c]
lea ecx, [esi*4]
push ecx
push edx
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
jmp 0x1001be0b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x1001be65
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001be34
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
add esp, 8
mov dword [eax + edx*4], 1
jmp 0x1001bf10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], 1
jmp 0x1001bf10
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x1001beb5
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x1001be92
mov ebx, 8
mov ecx, dword [esp + 0x1c]
lea eax, [ebx*4]
push eax
push ecx
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
jmp 0x1001beb9
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], 0xfffffffe
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x1001bf05
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x1001bee2
mov ebx, 8
mov ecx, dword [esp + 0x1c]
lea eax, [ebx*4]
push eax
push ecx
call fcn.10030943
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
jmp 0x1001bf09
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
add eax, edi
xor ebx, ebx
mov dword [esp + 0x24], eax
mov edi, eax
jmp 0x1001b8f1
mov ecx, dword [esp + 0xd4]
cmp edi, ecx
jge 0x1001bfe7
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
cmp edx, eax
jl 0x1001bf7e
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bf54
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov ecx, dword [esp + 0xdc]
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
jmp 0x1001bf82
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + edx*4], edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc edx
cmp edx, eax
mov dword [esp + 0x18], edx
jl 0x1001bfd1
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001bfa7
mov esi, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
mov ecx, dword [esp + 0xdc]
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
jmp 0x1001bfd5
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
sub ecx, edi
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 4]
and eax, 0x10
mov dword [esp + 0x54], eax
je 0x1001c00c
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x5c], 0xfffffffe
add ecx, 0xfffffffe
mov dword [esp + 0x60], ecx
jmp 0x1001c018
mov edx, dword [esp + 0x18]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], edx
mov edi, dword [esp + 0x54]
lea ecx, [esp + 0x30]
mov eax, edi
mov esi, edi
neg eax
sbb eax, eax
and al, 0xfc
add eax, 2
neg esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xcc]
sbb esi, esi
and esi, eax
neg edi
sbb edi, edi
xor ebx, ebx
not edi
and edi, eax
push ebx
push ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x34], ebx
call fcn.1001e600
mov dword [esp + 0x30], 0x1003d3f4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0xdc]
mov byte [esp + 0xc0], 8
cmp dword [ecx], 0
jne 0x1001c094
mov dword [esp + 0x44], 0
jmp 0x1001c12c
mov ecx, dword [esp + 0x44]
xor edx, edx
cmp ecx, edx
jne 0x1001c0d1
push 0x54
call fcn.10030d66
add esp, 4
mov dword [esp + 0x64], eax
test eax, eax
mov byte [esp + 0xc0], 9
je 0x1001c0c1
mov ecx, eax
call fcn.1001cc20
jmp 0x1001c0c3
xor eax, eax
mov edi, dword [esp + 0x6c]
mov byte [esp + 0xc0], 8
xor edx, edx
mov ecx, dword [esp + 0xc8]
cmp ebx, edx
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0xcc]
mov dword [eax + 0x48], edx
mov dword [eax + 0x44], 0xffffffff
mov dword [eax + 0x50], ecx
jge 0x1001c10d
mov ebx, dword [esp + 0x4c]
test byte [ebx + 4], 0x10
je 0x1001c105
mov dword [eax + 0x40], ecx
mov dword [eax + 0x3c], ecx
jmp 0x1001c128
mov dword [eax + 0x40], edx
mov dword [eax + 0x3c], edx
jmp 0x1001c128
cmp ebx, ecx
jle 0x1001c122
mov edx, dword [esp + 0x4c]
mov ebx, dword [edx + 4]
not ebx
shr ebx, 4
and ebx, 1
add ebx, ecx
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xe0]
mov ebx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], 0
test eax, eax
jl 0x1001c14f
cmp dword [esp + 0x48], eax
jge 0x1001c4f5
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, dword [esp + 0x54]
call fcn.1001d250
mov dword [ebp + 8], 0
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x1001c18a
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1001c17f
mov eax, 0x1003d3e8
push 0
push ecx
push eax
mov ecx, ebp
call fcn.1001b2a0
lea ecx, [esp + 0x90]
call fcn.1000a9f0
push 0
push 0
mov ecx, ebp
call fcn.1001c7e0
test eax, eax
je 0x1001c4f5
mov eax, dword [esp + 0x54]
push 0xffffffffffffffff
test eax, eax
je 0x1001c28c
push 3
mov ecx, ebp
call fcn.1001c7e0
sub ebx, eax
mov edi, ebx
je 0x1001c286
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.1001c7e0
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x38]
mov esi, eax
mov eax, dword [esp + 0x40]
add esi, edx
cmp ecx, eax
jl 0x1001c21c
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x1001c1f9
mov ebx, 8
mov eax, dword [esp + 0x3c]
lea edx, [ebx*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ebx
jmp 0x1001c220
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [eax + ecx*4], esi
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
inc ecx
cmp ecx, eax
mov dword [esp + 0x38], ecx
jl 0x1001c268
lea esi, [eax + eax]
cmp esi, 8
jge 0x1001c245
mov esi, 8
mov eax, dword [esp + 0x3c]
lea edx, [esi*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], esi
jmp 0x1001c26c
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [eax + ecx*4], edi
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
inc ecx
sub eax, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], eax
push 0xffffffffffffffff
push 2
jmp 0x1001c30a
push 2
mov ecx, ebp
call fcn.1001c7e0
mov esi, eax
sub esi, ebx
je 0x1001c306
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jl 0x1001c2db
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x1001c2b4
mov ebx, 8
mov eax, dword [esp + 0x3c]
lea edx, [ebx*4]
push edx
push eax
call fcn.10030943
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
jmp 0x1001c2df
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x38]
add ebx, ecx
push esi
mov dword [eax + edx*4], ebx
mov edx, dword [esp + 0x3c]
inc edx
lea ecx, [esp + 0x34]
mov dword [esp + 0x3c], edx
call fcn.1002c1d0
add dword [esp + 0x2c], esi
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.1001c7e0
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
mov edx, eax
cmp eax, ecx
mov dword [esp + 0x68], edx
je 0x1001c4d8
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*4]
mov ebx, dword [ecx + edx*4 + 4]
mov ecx, dword [esp + 0xd0]
cmp eax, 0xffffffff
lea esi, [eax + ecx]
jne 0x1001c460
movsx eax, bl
add eax, 0xffffffda
cmp eax, 0x3a
ja case.0x1001c368.43
xor edx, edx
mov dl, byte [eax + 0x1001c79c]
jmp dword [edx*4 + 0x1001c784]
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.1001c7e0
mov esi, eax
mov eax, dword [esp + 0xc8]
push 0xffffffffffffffff
push 2
mov ecx, ebp
add esi, eax
call fcn.1001c7e0
push 0xffffffffffffffff
push 3
mov ecx, ebp
mov edi, eax
call fcn.1001c7e0
mov ebx, eax
sub ebx, edi
jmp case.0x1001c368.43
mov esi, dword [esp + 0xc8]
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.1001c7e0
jmp 0x1001c494
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.1001c7e0
mov ebx, dword [esp + 0xc8]
mov esi, eax
push 0xffffffffffffffff
push 3
mov ecx, ebp
add esi, ebx
call fcn.1001c7e0
mov ebx, dword [esp + 0xcc]
sub ebx, eax
jmp case.0x1001c368.43
push 0
push 1
mov ecx, ebp
call fcn.1001c7e0
mov edi, eax
test edi, edi
jl 0x1001c417
lea esi, [edi + edi + 2]
push 0xffffffffffffffff
push esi
mov ecx, ebp
call fcn.1001c7e0
test eax, eax
jge 0x1001c417
dec edi
sub esi, 2
test edi, edi
jge 0x1001c401
lea ebx, [edi + edi + 2]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.1001c7e0
mov ecx, dword [esp + 0xc8]
mov esi, eax
add esi, ecx
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.1001c7e0
push edi
mov ecx, ebp
mov dword [esp + 0x68], eax
call fcn.1001d6b0
mov ebx, eax
mov eax, dword [esp + 0x64]
sub ebx, eax
jmp case.0x1001c368.43
mov esi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xcc]
jmp case.0x1001c368.43
cmp eax, 0xfffffffe
jne case.0x1001c368.43
lea edi, [ebx + ebx + 2]
push 0xffffffffffffffff
push edi
mov ecx, ebp
call fcn.1001c7e0
mov edx, dword [esp + 0xc8]
mov esi, eax
push 0xffffffffffffffff
push edi
mov ecx, ebp
add esi, edx
call fcn.1001c7e0
push ebx
mov ecx, ebp
mov edi, eax
call fcn.1001d6b0
sub eax, edi
mov ebx, eax
push esi
lea ecx, [esp + 0x34]
call fcn.1002c1d0
push ebx
lea ecx, [esp + 0x34]
call fcn.1002c1d0
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1001c4b4
neg ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
add edx, ebx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x68]
add edx, ecx
cmp edx, eax
mov dword [esp + 0x68], edx
jne 0x1001c333
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x24]
inc eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xe0]
jmp 0x1001c141
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1001c51a
cmp edi, ebx
jge 0x1001c53e
mov eax, dword [esp + 0xc8]
lea ecx, [edi + eax]
push ecx
lea ecx, [esp + 0x34]
call fcn.1002c1d0
sub ebx, edi
push ebx
jmp 0x1001c535
cmp ebx, edi
jge 0x1001c53e
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0x30]
lea eax, [ebx + edx]
push eax
call fcn.1002c1d0
sub edi, ebx
push edi
lea ecx, [esp + 0x34]
call fcn.1002c1d0
mov eax, dword [esp + 0xe8]
test eax, eax
jne 0x1001c556
mov ecx, dword [esp + 0x44]
push ecx
call fcn.1001d690
add esp, 4
mov ebx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x38]
xor esi, esi
cmp ecx, esi
mov dword [ebx], esi
jle 0x1001c581
mov edx, dword [esp + 0x3c]
inc ecx
shr ecx, 1
lea eax, [edx + 4]
mov edx, dword [eax]
mov edi, dword [ebx]
add edi, edx
add eax, 8
dec ecx
mov dword [ebx], edi
jne 0x1001c573
lea ecx, [esp + 0x7c]
call fcn.1001d700
mov eax, dword [ebx]
push esi
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0xc8], 0xa
call fcn.1001d7e0
mov edi, dword [esp + 0x54]
mov dword [esp + 0x84], esi
cmp edi, esi
je 0x1001c5de
mov ecx, dword [esp + 0x38]
lea esi, [ecx - 2]
test esi, esi
jl 0x1001c60c
mov eax, dword [esp + 0x3c]
push 0
lea ecx, [esp + 0x80]
mov edx, dword [eax + esi*4 + 4]
mov eax, dword [eax + esi*4]
push edx
push eax
call fcn.1001d720
sub esi, 2
jns 0x1001c5bc
jmp 0x1001c60c
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x1001c60c
mov eax, dword [esp + 0x3c]
push 0
mov ecx, dword [eax + esi*4 + 4]
mov edx, dword [eax + esi*4]
push ecx
push edx
lea ecx, [esp + 0x88]
call fcn.1001d720
mov eax, dword [esp + 0x38]
add esi, 2
cmp esi, eax
jl 0x1001c5e6
push 0
lea eax, [esp + 0x57]
push 1
push eax
lea ecx, [esp + 0x88]
mov byte [esp + 0x5f], 0
call fcn.1001d720
mov ecx, dword [ebx]
push 3
lea edx, [esp + 0x2c]
mov dword [esp + 0x2c], ecx
push 1
push edx
mov ecx, ebp
call fcn.1001b2a0
mov eax, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x2c]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x34], eax
call fcn.1001b2a0
test edi, edi
je 0x1001c68b
mov edx, dword [ebx]
mov esi, dword [esp + 0x2c]
push 0
lea eax, [esp + 0x2c]
sub edx, esi
push 1
push eax
mov ecx, ebp
mov dword [esp + 0x34], edx
call fcn.1001b2a0
mov ecx, dword [ebx]
mov esi, dword [esp + 0x58]
sub ecx, esi
push 0
lea edx, [esp + 0x2c]
push 1
mov dword [esp + 0x30], ecx
push edx
jmp 0x1001c6b4
mov eax, dword [esp + 0x58]
push 0
lea ecx, [esp + 0x2c]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x34], eax
call fcn.1001b2a0
mov edx, dword [esp + 0x2c]
push 0
lea eax, [esp + 0x2c]
push 1
mov dword [esp + 0x30], edx
push eax
mov ecx, ebp
call fcn.1001b2a0
lea ecx, [esp + 0x7c]
call fcn.1001d7c0
lea ecx, [esp + 0x7c]
mov esi, eax
mov byte [esp + 0xc0], 8
call fcn.1001d8c0
lea ecx, [esp + 0x30]
mov byte [esp + 0xc0], 4
call fcn.1001d6d0
lea ecx, [esp + 0xa4]
call fcn.1000a9f0
lea ecx, [esp + 0x10]
call fcn.1000a9f0
mov eax, esi
pop esi
pop ebp
mov ecx, dword [esp + 0xb0]
pop edi
pop ebx
mov dword fs:[0], ecx
add esp, 0xb4
ret 0x24