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

Disassembly:
push ebp
sub esp, 0x68
push 0x48
mov eax, 0x1008755b
call fcn.10060451
mov esi, ecx
mov dword [ebp + 0x4c], esi
xor edi, edi
xor ebx, ebx
inc ebx
lea ecx, [esi + 0x3c]
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x40], ebx
mov byte [ebp + 0x5b], 0
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [ebp + 0x3c], ecx
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::ClearErrState_void_
mov ecx, esi
mov byte [esi + 0x164], 0
mov dword [esi + 0xf4], edi
call fcn.1003e2b1
mov edi, dword [ebp + 0x74]
and dword [esi + 0xec], 0
push ebx
push 0x40
mov dword [esi + 0xf0], edi
call fcn.1005993f
pop ecx
pop ecx
xor ecx, ecx
push ecx
push ecx
push dword [ebp + 0x78]
mov dword [esi + 0xe8], eax
push edi
push ebx
push ecx
push ecx
mov ecx, eax
call sym.JP2KLib.dll_public:_int___thiscall_JP2KCodeStm::InitJP2KCodeStm_unsigned_long_long_unsigned___int64___int__void___struct_JP2KStreamProcsEx___enum_JP2KStmOpenMode__int_
test edi, edi
je 0x10041d49
xor edi, edi
cmp dword [ebp + 0x78], edi
je 0x10041d49
cmp dword [ebp + 0x7c], edi
je 0x10041d49
mov ecx, dword [esi + 0xe8]
call sym.JP2KLib.dll_public:_bool___thiscall_JP2KCodeStm::IsSeekable_void_
test al, al
je 0x10040ccb
push dword [esi + 0xe8]
mov ecx, esi
call fcn.1003e212
test al, al
jne 0x10040cbd
mov ecx, dword [ebp + 0x3c]
push 0x11
pop eax
mov dword [ecx], eax
mov dword [esi + 0x44], 0x1008b6bc
mov dword [esi + 0x40], 0x3bc
mov dword [esi + 0x48], 3
jmp 0x10041d4c
mov ecx, dword [esi + 0xe8]
push edi
push edi
push ebx
call sym.JP2KLib.dll_public:_long_long___int64____thiscall_JP2KCodeStm::seek_int__long_long___int64__
lea ecx, [esi + 0x80]
call fcn.10053c55
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x2c], edi
mov dword [ebp + 0x54], edi
mov dword [esi + 0xe4], edi
mov dword [esi + 0x110], edi
mov dword [esi + 0x108], edi
mov edi, dword [ebp + 0x80]
test edi, edi
mov dword [esi + 0x28], eax
je 0x10040d20
cmp dword [edi], 0
je 0x10040d17
push ebx
push 0x10
call fcn.1005993f
pop ecx
mov dword [esi + 0x110], eax
pop ecx
mov ecx, dword [edi]
mov dword [eax], ecx
mov eax, dword [edi + 4]
mov dword [esi + 0x108], eax
push ebx
push 0x3c
call fcn.1005993f
test eax, eax
pop ecx
pop ecx
mov dword [ebp + 0x80], eax
jne 0x10040d64
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x5c], 8
mov dword [ebp + 0x64], 0x1008b6bc
mov dword [ebp + 0x60], 0x3e3
mov dword [ebp + 0x68], 3
lea eax, [ebp + 0x5c]
push eax
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::Clone_class_IJP2KException__
mov eax, dword [ebp + 0x5c]
jmp 0x10041d4c
push 0x48
call fcn.1005986c
mov edi, eax
test edi, edi
pop ecx
mov dword [esi + 0xf8], eax
mov dword [ebp + 0x3c], edi
jne 0x10040d87
mov dword [ebp + 0x60], 0x3f2
jmp 0x10041ba5
push dword [esi + 0xe8]
mov ecx, edi
push 0x32000
push 0x19000
call fcn.1000aacd
test eax, eax
mov dword [ebp + 0x78], eax
je 0x10040db4
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], 0x3ff
jmp 0x10041bac
push 0
mov ecx, edi
call fcn.1000a251
and dword [ebp - 4], 0
push 0x400
mov ecx, edi
call fcn.1000a4dc
or dword [ebp - 4], 0xffffffff
jmp 0x10040e04
lea eax, [esi + 0x28]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x14]
xor edi, edi
mov dword [ecx + 0x54], edi
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x60], edi
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x90], edi
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp + 0x3c]
push edi
mov dword [eax + 0x6c], edi
mov byte [ebp + 0x77], 0
call fcn.1000a16d
cmp al, 0xff
jne 0x10040e4f
mov ecx, dword [ebp + 0x3c]
push 1
call fcn.1000a16d
cmp al, 0x4f
je 0x10040f26
push 1
push 0x64
call fcn.1005993f
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp + 0x54], eax
jne 0x10040e6d
mov dword [ebp + 0x60], 0x425
jmp 0x10041ba5
push eax
mov dword [esi + 0xe4], eax
mov dword [ebp - 4], 2
call fcn.10036cca
pop ecx
jmp 0x10040ea8
mov edi, dword [ebp + 0x3c]
mov ecx, edi
mov dword [ebp - 4], 4
call fcn.1000a19b
mov bl, al
lea eax, [ebp + 0x14]
push eax
push edi
push dword [ebp + 0x54]
mov byte [edi + 0x30], 0
call fcn.1003a256
add esp, 0xc
or dword [ebp - 4], 0xffffffff
mov dword [ebp + 0x78], eax
mov byte [edi + 0x30], bl
jmp 0x10040f0b
mov eax, dword [ebp + 0x78]
cmp eax, 0x17
je 0x10040f22
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], 0x453
jmp 0x10041bac
mov byte [ebp + 0x77], 1
push 1
push 0x88
call fcn.1005993f
test eax, eax
pop ecx
pop ecx
mov dword [ebp + 0x44], eax
jne 0x10040f47
mov dword [ebp + 0x60], 0x464
jmp 0x10041ba5
push 1
push eax
mov dword [esi + 0x14c], eax
mov dword [ebp - 4], 6
call fcn.1003b4aa
pop ecx
pop ecx
mov dword [ebp + 0x78], eax
jmp 0x10040f88
mov edi, dword [ebp + 0x3c]
mov ecx, edi
mov dword [ebp - 4], 8
call fcn.1000a19b
mov bl, al
lea eax, [ebp - 0x14]
push eax
push edi
push dword [ebp + 0x44]
mov byte [edi + 0x30], 0
call fcn.1003bbcb
add esp, 0xc
mov ecx, edi
mov dword [ebp + 0x78], eax
call fcn.1000a1f6
or dword [ebp - 4], 0xffffffff
mov byte [edi + 0x30], bl
jmp 0x10040feb
mov eax, dword [ebp + 0x78]
mov ebx, dword [ebp + 0x44]
xor edi, edi
cmp eax, edi
je 0x10041006
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], 0x491
jmp 0x10041bac
mov eax, dword [ebx + 0x4c]
xor ecx, ecx
cmp eax, edi
jle 0x10041021
mov edx, dword [ebx + 0xc]
cmp byte [edx + ecx], 0
jne 0x100410ba
inc ecx
cmp ecx, eax
jl 0x10041012
shl eax, 2
push 1
push eax
call fcn.1005993f
mov dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x4c]
shl eax, 2
push 1
push eax
call fcn.1005993f
mov dword [ebp + 0x34], eax
mov eax, dword [ebx + 0x4c]
shl eax, 2
push 1
push eax
call fcn.1005993f
add esp, 0x18
cmp dword [ebp + 0x38], edi
mov dword [ebp + 0x2c], eax
je 0x10041b9e
cmp dword [ebp + 0x34], edi
je 0x10041b9e
cmp eax, edi
je 0x10041b9e
mov eax, dword [ebp + 0x54]
cmp eax, edi
je 0x10041089
mov eax, dword [eax]
cmp eax, edi
je 0x10041089
cmp dword [eax + 0x10], edi
je 0x10041089
cmp dword [eax + 0xc], edi
jne 0x1004113d
inc dword [ebp + 0x40]
xor edi, edi
cmp dword [ebx + 0x4c], edi
mov byte [ebp + 0x7b], 1
jle 0x100410db
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + 0x20]
movzx eax, byte [ecx + edi]
cmp eax, dword [ebp + 0x40]
jl 0x100410cd
cdq
idiv dword [ebp + 0x40]
test edx, edx
je 0x100410b2
mov byte [ebp + 0x7b], 0
inc edi
cmp edi, dword [ebx + 0x4c]
jl 0x1004109d
jmp 0x100410d5
mov dword [ebp + 0x5c], 0x1d
mov dword [ebp + 0x60], 0x4a4
jmp 0x10041bac
mov byte [ebp + 0x5b], 1
mov byte [ebp + 0x7b], 0
cmp byte [ebp + 0x7b], 0
je 0x100410e1
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x50], eax
cmp byte [ebp + 0x5b], 0
je 0x10041089
mov byte [ebp + 0x5b], 0
mov dword [ebp + 0x40], 1
inc dword [ebp + 0x40]
xor edi, edi
cmp dword [ebx + 0x4c], edi
mov byte [ebp + 0x7b], 1
jle 0x10041131
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + 0x24]
movzx eax, byte [ecx + edi]
cmp eax, dword [ebp + 0x40]
jl 0x10041123
cdq
idiv dword [ebp + 0x40]
test edx, edx
je 0x1004111b
mov byte [ebp + 0x7b], 0
inc edi
cmp edi, dword [ebx + 0x4c]
jl 0x10041106
jmp 0x1004112b
mov byte [ebp + 0x5b], 1
mov byte [ebp + 0x7b], 0
cmp byte [ebp + 0x7b], 0
je 0x10041137
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x48], eax
cmp byte [ebp + 0x5b], 0
je 0x100410f2
xor ecx, ecx
cmp dword [ebx + 0x4c], ecx
jle 0x1004119f
mov edi, dword [ebp + 0x34]
mov eax, dword [ebp + 0x38]
sub eax, edi
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x2c]
sub eax, edi
mov dword [ebp + 0x4c], eax
mov eax, dword [ebx + 0x5c]
movzx eax, byte [ecx + eax]
mov edx, dword [ebp + 0x78]
mov dword [edx + edi], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x20]
movzx eax, byte [eax + ecx]
mov edx, dword [ebp + 0x50]
lea eax, [eax + edx - 1]
cdq
idiv dword [ebp + 0x50]
mov edx, dword [ebp + 0x48]
mov dword [edi], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x24]
movzx eax, byte [eax + ecx]
lea eax, [eax + edx - 1]
cdq
idiv dword [ebp + 0x48]
mov edx, dword [ebp + 0x4c]
inc ecx
mov dword [edx + edi], eax
add edi, 4
cmp ecx, dword [ebx + 0x4c]
jl 0x10041157
and dword [esi + 0x2c], 0
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + 0x1c]
mov edi, dword [ebp + 0x48]
lea eax, [eax + edi - 1]
xor edx, edx
div edi
push dword [ebp + 0x38]
mov edi, dword [ebp + 0x50]
push dword [ebx + 0x4c]
xor edx, edx
push dword [ebp + 0x2c]
push dword [ebp + 0x34]
push eax
mov eax, dword [ecx + 0x18]
lea eax, [eax + edi - 1]
div edi
mov edi, dword [ebp + 0x48]
xor edx, edx
push eax
mov eax, dword [ecx + 0x14]
lea eax, [eax + edi - 1]
div edi
mov edi, dword [ebp + 0x50]
xor edx, edx
push eax
mov eax, dword [ecx + 0x10]
lea eax, [eax + edi - 1]
div edi
mov edi, dword [ebp + 0x48]
xor edx, edx
push eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + edi - 1]
div edi
mov edi, dword [ebp + 0x50]
xor edx, edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + edi - 1]
div edi
mov edi, dword [ebp + 0x48]
xor edx, edx
push eax
mov eax, dword [ecx + 4]
lea eax, [eax + edi - 1]
div edi
xor edx, edx
push eax
mov eax, dword [ecx]
mov ecx, dword [ebp + 0x50]
lea eax, [eax + ecx - 1]
div ecx
mov ecx, dword [ebp + 0x80]
push eax
call fcn.1003b257
mov eax, dword [ebx + 0x3c]
push dword [ebp + 0x38]
mov dword [esi + 0x20], eax
call fcn.100598cb
push dword [ebp + 0x34]
xor edi, edi
mov dword [ebp + 0x38], edi
call fcn.100598cb
push dword [ebp + 0x2c]
mov dword [ebp + 0x34], edi
call fcn.100598cb
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x7c]
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
jne 0x1004127d
mov dword [ebp + 0x5c], 0xf
mov dword [ebp + 0x60], 0x530
jmp 0x10041bac
push dword [ebp + 0x80]
push eax
call sym.JP2KLib.dll_JP2KEncOptInitToDefaultsUsingImageGeometry
cmp byte [ebp + 0x77], 0
pop ecx
pop ecx
je 0x100413fb
mov eax, dword [ebp + 0x54]
cmp byte [eax + 0x11], 0
je 0x100412f8
mov edx, dword [eax + 0x14]
cmp dword [edx], 1
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 4]
jne 0x100412df
mov edx, dword [edx + 0xc]
cmp dword [edx], 0xffff
jne 0x100412df
jmp 0x100412c7
cmp dword [ecx], 1
jne 0x100412c4
cmp dword [ecx + 0xc], 0x11
je 0x100412cd
mov ecx, dword [ecx + 0x54]
test ecx, ecx
jne 0x100412b9
jmp 0x100412df
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 0xc]
and dword [ecx], 0
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 0x10]
and dword [ecx], 0
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x78], 1
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x7c], edx
cmp byte [eax + 0x44], 0
je 0x1004131d
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x80], 1
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x48]
mov dword [ecx + 0x84], edx
cmp byte [eax + 0x20], 0
je 0x10041348
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x54], 1
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x24]
mov dword [ecx + 0x58], edx
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x28]
mov dword [ecx + 0x5c], edx
cmp byte [eax + 0x5c], 0
je 0x1004136d
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x108], 1
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x60]
mov dword [ecx + 0x10c], edx
cmp byte [eax + 0x2c], 0
je 0x10041398
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x60], 1
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x30]
mov dword [ecx + 0x64], edx
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax + 0x34]
mov dword [ecx + 0x68], edx
cmp byte [eax + 0x38], 0
je 0x100413d9
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 0x6c], 1
fld dword [eax + 0x3c]
fld qword [0x1008b700]
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp + 0x78]
fld dword [ebp + 0x78]
fstp dword [ecx + 0x70]
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 0x14]
fmul dword [eax + 0x40]
fstp dword [ebp + 0x78]
fld dword [ebp + 0x78]
fstp dword [ecx + 0x74]
mov ecx, dword [edi + 0x14]
mov edx, dword [eax + 0xc]
mov dword [ecx + 0x50], edx
mov ecx, dword [edi + 0x14]
mov dword [ecx + 0x90], 3
mov ecx, dword [edi + 0x14]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x9c], eax
movzx eax, byte [ebx + 0x49]
mov ecx, dword [edi + 0x14]
mov dword [ecx + 0x8c], eax
mov eax, dword [edi + 0x14]
mov ecx, dword [ebx + 0x44]
mov dword [eax + 0xbc], ecx
mov eax, dword [edi + 0x14]
mov ecx, dword [ebx + 0x3c]
mov dword [eax + 0x88], ecx
movzx eax, byte [ebx + 0x40]
mov ecx, dword [edi + 0x14]
mov dword [ecx + 0xc4], eax
mov ecx, dword [edi + 0x14]
xor eax, eax
cmp byte [ebx + 0x48], al
setne al
mov dword [ecx + 0x48], eax
movzx eax, byte [ebx + 7]
mov ecx, dword [edi + 0x14]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp + 0x80]
mov byte [esi + 7], 0
mov eax, dword [eax + 4]
mov dword [esi + 8], eax
push dword [edi + 0x14]
call sym.JP2KLib.dll_JP2KEncOptGetGeomParams
and dword [esi + 0x18], 0
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], eax
mov dword [esi + 0x28], edi
mov edx, dword [eax + 0x34]
imul edx, ecx
imul edx, dword [eax + 0x38]
mov dword [esi + 0x10], edx
mov edx, dword [eax + 0x34]
imul edx, dword [eax + 0x38]
mov eax, ecx
shl eax, 2
push 1
push eax
mov dword [esi + 0xc], edx
call fcn.1005993f
add esp, 0xc
test eax, eax
mov dword [esi + 0x18], eax
jne 0x100414a4
mov dword [ebp + 0x60], 0x5ad
jmp 0x10041ba5
push 0x20
lea ecx, [esi + 0x80]
push 0x19000
call fcn.10053c0e
push 0x20
lea ecx, [esi + 0xb0]
push 0x4000
call fcn.10053c0e
push 1
push 0x34
call fcn.1005993f
mov edi, eax
test edi, edi
pop ecx
pop ecx
mov dword [ebp + 0x30], edi
jne 0x100414e8
mov dword [ebp + 0x60], 0x5c5
jmp 0x10041ba5
mov eax, dword [esi + 0x14]
mov dword [esi + 0x100], edi
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
imul ecx, ecx, 0x34
push 1
push ecx
call fcn.1005993f
test eax, eax
pop ecx
pop ecx
mov dword [ebp + 0x28], eax
jne 0x10041518
mov dword [ebp + 0x60], 0x5d4
jmp 0x10041ba5
mov eax, dword [ebp + 0x28]
mov dword [esi + 0xfc], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
imul ecx, ecx, 0x50
push 1
push ecx
call fcn.1005993f
test eax, eax
pop ecx
pop ecx
mov dword [ebp + 0x4c], eax
jne 0x1004154b
mov dword [ebp + 0x60], 0x5e1
jmp 0x10041ba5
mov eax, dword [ebp + 0x4c]
mov dword [esi + 0x104], eax
lea eax, [esi + 0x80]
mov dword [edi + 0xc], eax
lea eax, [esi + 0xb0]
push 0xb0
mov dword [edi + 0x10], eax
mov byte [edi + 0x1c], 1
call fcn.1005986c
mov dword [edi + 0x20], eax
push dword [ebx + 0x14]
push eax
call fcn.10059f93
push 0x2c
mov byte [edi + 0x24], 1
call fcn.1005986c
mov dword [edi + 0x28], eax
push dword [ebx + 0x20]
push eax
call fcn.1005a09d
mov al, byte [ebx + 8]
push 1
push 0x2c
mov byte [edi + 0x2c], al
call fcn.1005993f
mov dword [edi + 0x30], eax
push dword [ebx + 0x34]
push eax
call fcn.1005a1a8
mov eax, dword [ebp + 0x80]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
and dword [ebp + 0x78], 0
add esp, 0x28
test ecx, ecx
jle 0x1004161e
mov eax, dword [ebp + 0x28]
add eax, 0xc
mov ecx, dword [ebp + 0x78]
mov dword [eax - 8], ecx
mov dword [eax - 0xc], 2
mov ecx, dword [edi + 0xc]
mov dword [eax], ecx
mov ecx, dword [edi + 0x10]
inc dword [ebp + 0x78]
mov dword [eax + 4], ecx
mov byte [eax + 0x10], 0
mov byte [eax + 0x18], 0
mov byte [eax + 0x20], 0
mov ecx, dword [edi + 0x20]
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 0x28]
mov dword [eax + 0x1c], ecx
mov ecx, dword [edi + 0x30]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp + 0x80]
mov edx, dword [ecx + 0x38]
imul edx, dword [ecx + 0x34]
add eax, 0x34
cmp dword [ebp + 0x78], edx
jl 0x100415d0
and dword [ebp + 0x74], 0
cmp dword [esi + 8], 0
jle 0x10041932
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
mov edi, dword [ebp + 0x74]
imul ecx, ecx, 0xc0
push 1
push ecx
shl edi, 2
call fcn.1005993f
pop ecx
pop ecx
mov ecx, dword [esi + 0x18]
mov dword [edi + ecx], eax
mov eax, dword [esi + 0x18]
cmp dword [edi + eax], 0
je 0x10041b56
mov eax, dword [ebp + 0x80]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
and dword [ebp + 0x78], 0
test ecx, ecx
jle 0x10041923
and dword [ebp + 0x48], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, dword [ebp + 0x48]
call fcn.1004c667
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, dword [ebp + 0x48]
push esi
call fcn.1004c659
push dword [ebp + 0x78]
mov ecx, dword [ebp + 0x80]
call fcn.1003a5a1
push dword [ebp + 0x78]
mov ecx, dword [ebp + 0x80]
mov ebx, eax
call fcn.1003a5ae
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [ebp + 0x20]
push ecx
lea ecx, [ebp + 0x1c]
push ecx
lea ecx, [ebp + 0x18]
push ecx
push dword [ebp + 0x74]
mov ecx, dword [ebp + 0x80]
push eax
push ebx
call fcn.1003a64f
push 0x2c
call fcn.1005986c
mov ebx, eax
test ebx, ebx
pop ecx
je 0x10041b5f
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x20]
push 0
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ecx + edi]
mov ecx, dword [eax + 0x1c]
push dword [ecx + edi]
mov eax, dword [eax + 8]
push dword [eax + edi]
mov ecx, ebx
push dword [ebp + 0x78]
push dword [ebp + 0x74]
call fcn.1003ae22
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
push ebx
mov ebx, dword [ebp + 0x48]
add ecx, ebx
call fcn.1004c80d
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, ebx
call fcn.1004c6e3
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
push 0
add ecx, ebx
call fcn.1004c6ab
xor eax, eax
push eax
push eax
push eax
push eax
push eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, ebx
call fcn.1004c825
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
push 0
add ecx, ebx
call fcn.10051de7
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
push 0
add ecx, ebx
call fcn.10051dfb
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, ebx
call fcn.1004c5fa
mov eax, dword [esi + 0x18]
mov eax, dword [edi + eax]
mov byte [eax + ebx + 0xbc], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
push 1
push dword [ebp + 0x7c]
add ecx, ebx
call fcn.1004c7f8
push 1
push 0x34
call fcn.1005993f
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
je 0x10041b68
mov eax, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x30]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x74]
mov dword [ebx + 8], eax
mov dword [ebx], 3
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ecx + 0x10]
xor edx, edx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x14], edx
mov byte [ebx + 0x1c], dl
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0x44]
cmp byte [eax + 4], dl
je 0x1004187f
cmp dword [eax + 0x1c], edx
mov dword [ebp + 0x50], edx
jle 0x1004187f
mov dword [ebp + 0x54], edx
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp + 0x74]
mov edx, dword [ebp + 0x54]
cmp dword [edx + eax + 8], ecx
jne 0x10041865
push 0xb0
mov byte [ebx + 0x1c], 1
call fcn.1005986c
test eax, eax
pop ecx
mov dword [ebx + 0x20], eax
je 0x10041b71
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx + 0x18]
add ecx, dword [ebp + 0x54]
push ecx
push eax
call fcn.10059f93
mov eax, dword [ebp + 0x30]
mov edx, dword [ebx + 0x20]
pop ecx
pop ecx
mov ecx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x38]
mov dword [edx + 0x38], ecx
mov ecx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x3c]
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], ecx
mov eax, dword [eax + 0x20]
mov ecx, dword [ebx + 0x20]
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x34], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x50]
add dword [ebp + 0x54], 0xb0
cmp ecx, dword [eax + 0x1c]
jl 0x10041803
mov ecx, dword [ebp + 0x30]
xor edx, edx
mov byte [ebx + 0x24], 0
mov ecx, dword [ecx + 0x28]
mov dword [ebx + 0x28], ecx
cmp byte [eax + 6], 0
je 0x100418e4
cmp dword [eax + 0x28], edx
mov dword [ebp + 0x50], edx
jle 0x100418e4
mov dword [ebp + 0x54], edx
mov eax, dword [eax + 0x24]
mov ecx, dword [ebp + 0x74]
mov edx, dword [ebp + 0x54]
cmp dword [edx + eax + 8], ecx
jne 0x100418d2
push 0x2c
mov byte [ebx + 0x24], 1
call fcn.1005986c
test eax, eax
pop ecx
mov dword [ebx + 0x28], eax
je 0x10041b7a
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx + 0x24]
add ecx, dword [ebp + 0x54]
push ecx
push eax
call fcn.1005a09d
pop ecx
pop ecx
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x50]
add dword [ebp + 0x54], 0x2c
cmp ecx, dword [eax + 0x28]
jl 0x1004189a
mov eax, dword [ebp + 0x30]
mov byte [ebx + 0x2c], 0
mov eax, dword [eax + 0x30]
mov dword [ebx + 0x30], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, dword [ebp + 0x48]
push ebx
call fcn.1004c6d9
mov eax, dword [ebp + 0x80]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
inc dword [ebp + 0x78]
add dword [ebp + 0x48], 0xc0
cmp dword [ebp + 0x78], ecx
jl 0x1004167c
mov ebx, dword [ebp + 0x44]
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
cmp eax, dword [esi + 8]
jl 0x1004162c
cmp byte [ebx + 7], 0
je 0x10041a5e
xor eax, eax
cmp dword [esi + 8], eax
mov dword [ebp + 0x74], eax
jle 0x10041a5e
mov dword [ebp + 0x7c], eax
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp + 0x7c]
cmp byte [ecx + eax + 8], 0
je 0x10041a4b
mov eax, dword [ebp + 0x80]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
and dword [ebp + 0x78], 0
test ecx, ecx
jle 0x10041a4b
and dword [ebp + 0x54], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp + 0x74]
mov ecx, dword [eax + ecx*4]
add ecx, dword [ebp + 0x54]
call fcn.1004c6d5
mov edi, eax
cmp byte [edi + 0x1c], 0
jne 0x100419b9
push 0xb0
call fcn.1005986c
test eax, eax
pop ecx
mov dword [edi + 0x20], eax
je 0x10041b83
mov byte [edi + 0x1c], 1
push dword [ebx + 0x14]
push eax
call fcn.10059f93
pop ecx
pop ecx
cmp byte [edi + 0x24], 0
jne 0x100419e1
push 0x2c
call fcn.1005986c
test eax, eax
pop ecx
mov dword [edi + 0x28], eax
je 0x10041b8c
mov byte [edi + 0x24], 1
push dword [ebx + 0x20]
push eax
call fcn.1005a09d
pop ecx
pop ecx
mov eax, dword [edi + 0x20]
mov edx, dword [ebp + 0x7c]
mov byte [eax + 0x58], 1
mov eax, dword [edi + 0x28]
mov byte [eax + 0xf], 1
mov eax, dword [ebx + 0x2c]
mov al, byte [edx + eax + 4]
mov ecx, dword [edi + 0x28]
mov byte [ecx + 0x10], al
mov eax, dword [edi + 0x28]
movzx eax, byte [eax + 0x10]
mov ecx, dword [edi + 0x20]
mov dword [ecx + 0x70], eax
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x28]
push dword [ecx + 0x2c]
movzx ecx, byte [eax + 0xe]
push ecx
push dword [eax + 0x14]
call fcn.10036480
mov ecx, dword [edi + 0x20]
add dword [ebp + 0x54], 0xc0
mov dword [ecx + 0x74], eax
mov eax, dword [ebp + 0x80]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
add esp, 0xc
inc dword [ebp + 0x78]
cmp dword [ebp + 0x78], ecx
jl 0x1004197b
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
add dword [ebp + 0x7c], 0xc
cmp eax, dword [esi + 8]
jl 0x1004194d
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
xor edi, edi
test ecx, ecx
jle 0x10041b20
mov eax, dword [ebp + 0x4c]
and dword [ebp + 0x7c], edi
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x78], eax
mov eax, dword [esi + 8]
shl eax, 2
push eax
call fcn.1005986c
mov ebx, eax
test ebx, ebx
pop ecx
je 0x10041b95
xor eax, eax
cmp dword [esi + 8], eax
jle 0x10041ab1
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx + eax*4]
add ecx, dword [ebp + 0x7c]
mov dword [ebx + eax*4], ecx
inc eax
cmp eax, dword [esi + 8]
jl 0x10041a9f
mov ecx, dword [esi + 0x14]
push edi
call fcn.1003a5a1
mov ecx, dword [esi + 0x14]
push edi
mov dword [ebp + 0x54], eax
call fcn.1003a5ae
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [ebp + 0x20]
push ecx
lea ecx, [ebp + 0x1c]
push ecx
lea ecx, [ebp + 0x18]
push ecx
mov ecx, dword [esi + 0x14]
push eax
push dword [ebp + 0x54]
call fcn.1003a5da
mov ecx, dword [ebp + 0x74]
push ebx
push dword [esi + 8]
push dword [ebp + 0x78]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
call fcn.1004c51e
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
add dword [ebp + 0x7c], 0xc0
add dword [ebp + 0x78], 0x34
add dword [ebp + 0x74], 0x50
inc edi
cmp edi, ecx
jl 0x10041a81
mov eax, dword [esi + 0x14]
push dword [eax + 0x38]
mov ecx, dword [ebp + 0x3c]
push dword [eax + 0x34]
call fcn.1000a240
mov ecx, esi
call fcn.10048641
mov ecx, dword [ebp + 0x80]
call fcn.1003ad17
push dword [ebp + 0x80]
call fcn.100598cb
pop ecx
xor eax, eax
jmp 0x10041d4c
mov dword [ebp + 0x60], 0x611
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x628
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x657
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x675
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x694
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x6b7
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x6c6
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x6e0
jmp 0x10041ba5
mov dword [ebp + 0x60], 0x4b2
mov dword [ebp + 0x5c], 8
mov dword [ebp + 0x64], 0x1008b6bc
mov dword [ebp + 0x68], 3
mov ecx, dword [ebp + 0x80]
call fcn.1003ad17
push dword [ebp + 0x80]
call fcn.100598cb
xor edi, edi
cmp dword [ebp + 0x38], edi
pop ecx
je 0x10041be1
push dword [ebp + 0x38]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x34], edi
je 0x10041bef
push dword [ebp + 0x34]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x2c], edi
je 0x10041bfd
push dword [ebp + 0x2c]
call fcn.100598cb
pop ecx
mov eax, dword [esi + 0x2c]
cmp eax, edi
je 0x10041c0e
push eax
call fcn.100598cb
pop ecx
mov dword [esi + 0x2c], edi
cmp dword [esi + 0x18], edi
je 0x10041cbc
cmp dword [esi + 8], edi
mov dword [ebp + 0x74], edi
jle 0x10041cb3
mov edi, dword [ebp + 0x74]
mov eax, dword [esi + 0x18]
shl edi, 2
cmp dword [edi + eax], 0
je 0x10041ca4
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
and dword [ebp + 0x78], 0
test ecx, ecx
jle 0x10041c98
and dword [ebp + 0x7c], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, dword [ebp + 0x7c]
call fcn.1004c821
test eax, eax
je 0x10041c61
push eax
call fcn.100598cb
pop ecx
mov eax, dword [esi + 0x18]
mov ecx, dword [edi + eax]
add ecx, dword [ebp + 0x7c]
call fcn.1004c6d5
mov ebx, eax
mov ecx, ebx
call fcn.1005a5fa
push ebx
call fcn.100598cb
mov eax, dword [esi + 0x14]
inc dword [ebp + 0x78]
add dword [ebp + 0x7c], 0xc0
pop ecx
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
cmp dword [ebp + 0x78], ecx
jl 0x10041c48
mov eax, dword [esi + 0x18]
push dword [edi + eax]
call fcn.100598cb
pop ecx
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
cmp eax, dword [esi + 8]
jl 0x10041c23
push dword [esi + 0x18]
call fcn.100598cb
pop ecx
mov ebx, dword [ebp + 0x28]
test ebx, ebx
je 0x10041cf5
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
xor edi, edi
test ecx, ecx
jle 0x10041cec
mov ecx, ebx
call fcn.1005a5fa
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x38]
imul ecx, dword [eax + 0x34]
inc edi
add ebx, 0x34
cmp edi, ecx
jl 0x10041cd3
push dword [ebp + 0x28]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x30], 0
je 0x10041d0c
mov ecx, dword [ebp + 0x30]
call fcn.1005a5fa
push dword [ebp + 0x30]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x44], 0
je 0x10041d2b
push dword [ebp + 0x44]
call fcn.1003b581
push dword [ebp + 0x44]
call fcn.100598cb
and dword [esi + 0x14c], 0
pop ecx
pop ecx
lea ecx, [esi + 0x80]
call fcn.10053cf1
lea ecx, [esi + 0xb0]
call fcn.10053cf1
lea ecx, [esi + 0x3c]
jmp 0x10040d53
push 0xf
pop eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0x10