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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10080922
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x10097288]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov dword [ebp - 0x124], ebx
mov esi, ecx
mov dword [ebp - 0x114], esi
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp + 0xc]
cmp dword [ecx + 0x88], 0
mov edi, dword [ecx + 0x7c]
mov dword [ebp - 0x158], eax
setne byte [ebp - 0xf9]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xcc], eax
mov eax, dword [ecx + 0x78]
mov dword [ebp - 0x14c], eax
mov eax, dword [ecx + 0x80]
mov dword [ebp - 0xd8], eax
mov eax, dword [ecx + 0x84]
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0x128], eax
mov byte [ebp - 0xc5], 0
mov byte [ebp - 0xc6], 0
cmp edi, 0xffffffff
jne 0x1000c728
mov byte [ebp - 0xc5], 1
push 5
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.1000a020
test eax, eax
jne 0x1000c774
push 0x1008e210
push str.Could_not_read_header_from_file:__s_n
call fcn.100520b0
add esp, 8
jmp 0x1000e576
cmp edi, 0xfffffffe
jne 0x1000c736
mov byte [ebp - 0xc6], 1
jmp 0x1000c700
cmp edi, 1
je 0x1000c700
cmp edi, 2
je 0x1000c700
cmp edi, 4
je 0x1000c700
cmp edi, 8
je 0x1000c700
cmp edi, 0x10
je 0x1000c700
cmp edi, 0x20
je 0x1000c700
cmp edi, 0x40
je 0x1000c700
cmp edi, 0x80
je 0x1000c700
push edi
push str.Invalid_scale_down_factor:__i_n
call fcn.100520b0
add esp, 8
jmp 0x1000e576
mov ecx, str.__ar
lea eax, [ebp - 0x20]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000c7a0
test dl, dl
je 0x1000c79c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000c7a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000c780
xor eax, eax
jmp 0x1000c7a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000c894
push 5
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.1000a020
test eax, eax
je 0x1000e576
mov ecx, str.ch__n
lea eax, [ebp - 0x20]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000c7f0
test dl, dl
je 0x1000c7ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000c7f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000c7d0
xor eax, eax
jmp 0x1000c7f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000e576
push 0x3d
lea eax, [ebp - 0x98]
mov ecx, esi
push eax
call fcn.1000a020
test eax, eax
je 0x1000c85f
push 0xd
lea eax, [ebp - 0x98]
push str.__image.flif_
push eax
call fcn.1006f350
add esp, 0xc
test eax, eax
je 0x1000c871
push 0xa
lea eax, [ebp - 0x68]
push 0
push eax
call fcn.1006fcbb
add esp, 0xc
test eax, eax
js 0x1000e576
test al, 1
je 0x1000c848
inc eax
add dword [esi + 8], eax
mov ecx, esi
push 0x3d
lea eax, [ebp - 0x98]
push eax
call fcn.1000a020
test eax, eax
jne 0x1000c811
push str.Archive_does_not_contain_a_FLIF_image_n
call fcn.100520b0
add esp, 4
jmp 0x1000e576
push 5
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.1000a020
test eax, eax
jne 0x1000c894
push str.Corrupt_archive__n
call fcn.100520b0
add esp, 4
jmp 0x1000e576
xor esi, esi
xor eax, eax
mov dword [ebp - 0x148], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0x140], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 4], eax
mov ecx, str.FLIF
lea eax, [ebp - 0x20]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000c8e1
test dl, dl
je 0x1000c8dd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000c8e1
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000c8c1
xor eax, eax
jmp 0x1000c8e6
sbb eax, eax
or eax, 1
test eax, eax
je 0x1000c901
push 0x1008e210
push str._s_is_not_a_FLIF_file_n
call fcn.100520b0
add esp, 8
jmp 0x1000e56b
mov ecx, dword [ebp - 0x114]
lea edx, [ebp - 0xdc]
call fcn.1000f6e0
test al, al
je 0x1000e56b
mov eax, dword [ebp - 0xdc]
lea esi, [eax - 0x20]
cmp esi, 0x4f
ja 0x1000e55e
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd4], 1
cmp esi, 0x2f
jle 0x1000c954
sub esi, 0x20
mov dword [ebp - 0xd4], 2
mov dword [ebp - 0xdc], esi
mov eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp eax, 1
jne 0x1000c968
mov al, al
jmp 0x1000c973
cmp eax, 2
jne 0x1000e557
mov al, al
mov ecx, dword [ebp - 0xf8]
mov byte [ebp - 0xc7], al
mov byte [ecx + 0x5c], al
cmp al, 1
jne 0x1000c999
cmp dword [ecx + 0x94], 0
je 0x1000c999
push 0x1008932c
jmp 0x1000e563
cmp edi, 1
je 0x1000c9b5
cmp al, 1
jne 0x1000c9b5
cmp byte [ebp - 0xc5], 0
jne 0x1000c9b5
push 0x10089364
jmp 0x1000e563
cmp dword [ebp - 0x14c], 0x64
jge 0x1000c9d1
cmp al, 1
jne 0x1000c9d1
push 0x100893d0
push 1
call fcn.100520e0
add esp, 8
and esi, 0x8000000f
jns 0x1000c9de
dec esi
or esi, 0xfffffff0
inc esi
lea eax, [esi - 1]
mov dword [ebp - 0xe4], esi
cmp eax, 3
ja 0x1000e550
cmp esi, 2
je 0x1000e550
mov esi, dword [ebp - 0x114]
lea edx, [ebp - 0xdc]
mov ecx, esi
call fcn.1000f6e0
test al, al
je 0x1000e56b
mov edi, dword [ebp - 0xdc]
lea eax, [edi - 0x30]
cmp eax, 2
ja 0x1000e549
mov ecx, esi
call fcn.1000f720
inc eax
mov ecx, esi
mov dword [ebp - 0x10c], eax
call fcn.1000f720
inc eax
cmp dword [ebp - 0x10c], 1
mov dword [ebp - 0x110], eax
jl 0x1000e542
cmp eax, 1
jl 0x1000e542
cmp dword [ebp - 0xd4], 1
jle 0x1000ca71
mov ecx, esi
call fcn.1000f720
add eax, 2
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
lea edx, [ebp - 0x54]
mov byte [ebp - 4], 1
mov ecx, esi
call fcn.1000f780
test eax, eax
jne 0x1000cba8
mov esi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x114]
cmp byte [esi], 0
jne 0x1000cadf
mov ecx, 0x10089468
lea eax, [ebp - 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000cad2
test dl, dl
je 0x1000cace
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000cad2
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000cab2
xor eax, eax
jmp 0x1000cad7
sbb eax, eax
or eax, 1
test eax, eax
je 0x1000cb72
cmp byte [esi + 1], 0
jne 0x1000cb19
mov ecx, 0x10089470
lea eax, [ebp - 0x54]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000cb10
test dl, dl
je 0x1000cb0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000cb10
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000caf0
xor eax, eax
jmp 0x1000cb15
sbb eax, eax
or eax, 1
test eax, eax
je 0x1000cb72
cmp byte [esi + 2], 0
jne 0x1000cb50
mov ecx, 0x10089478
lea eax, [ebp - 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000cb47
test dl, dl
je 0x1000cb43
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000cb47
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000cb27
xor eax, eax
jmp 0x1000cb4c
sbb eax, eax
or eax, 1
test eax, eax
je 0x1000cb72
lea eax, [ebp - 0x54]
push eax
push 0x10089480
push 3
call fcn.100520e0
add esp, 0xc
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0xf0]
push eax
call fcn.10006820
lea edx, [ebp - 0x54]
mov ecx, ebx
call fcn.1000f780
test eax, eax
je 0x1000caa5
mov esi, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0x124]
mov dword [ebp - 0x148], esi
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0x140], edx
cmp eax, 1
je 0x1000cbc7
push 0x1008949c
call fcn.100520b0
add esp, 4
lea ecx, [ebp - 0x54]
call fcn.10003000
jmp 0x1000e56b
cmp byte [ebp - 0xc6], 0
je 0x1000cc23
push 0
lea ecx, [ebp - 0xc4]
call fcn.10002520
push eax
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.10007050
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 1
call fcn.10002f60
mov ecx, dword [ebx]
lea eax, [ebp - 0xf0]
push eax
add ecx, 0x60
call fcn.10006680
lea ecx, [ebp - 0x54]
call fcn.10003000
lea ecx, [ebp - 0xf0]
call fcn.10006640
mov al, 1
jmp 0x1000e578
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0x94], 0
je 0x1000cc44
push dword [esi + 8]
push 0x100894b0
push 1
call fcn.100520e0
add esp, 0xc
push esi
lea ecx, [ebp - 0x164]
call fcn.1000eae0
push dword [ebp - 0x110]
lea eax, [ebp - 0x164]
push dword [ebp - 0x10c]
mov dword [ebp - 0xf4], eax
push 0x100894d4
push 3
call fcn.100520e0
mov ebx, dword [ebp - 0xe4]
xor eax, eax
add esp, 0x10
mov dword [ebp - 0xdc], eax
xor esi, esi
test ebx, ebx
jle 0x1000cd01
nop
mov edx, 0xff
cmp edi, 0x32
jne 0x1000cca1
mov edx, 0xffff
jmp 0x1000ccc5
cmp edi, 0x30
jne 0x1000ccc5
push 0xf
push 1
lea ecx, [ebp - 0xf4]
call fcn.1000e820
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0xdc]
shl edx, cl
dec edx
cmp edx, eax
cmovg eax, edx
mov dword [ebp - 0xdc], eax
cmp edi, 0x30
jne 0x1000ccfc
inc edx
jne 0x1000ccdc
xor eax, eax
jmp 0x1000cce5
bsr eax, edx
mov dword [ebp - 0xd0], eax
push eax
push esi
push 0x100894f4
push 3
call fcn.100520e0
mov eax, dword [ebp - 0xdc]
add esp, 0x10
inc esi
cmp esi, ebx
jl 0x1000cc90
cmp edi, 0x31
jne 0x1000cd0e
push ebx
push 0x10089504
jmp 0x1000cd19
cmp edi, 0x32
jne 0x1000cd23
push ebx
push 0x10089518
push 3
call fcn.100520e0
add esp, 0xc
mov esi, dword [ebp - 0xd4]
cmp esi, 1
jle 0x1000cd3e
push esi
push 0x1008952c
push 3
call fcn.100520e0
add esp, 0xc
mov byte [ebp - 0xc6], 0
cmp ebx, 3
jle 0x1000cd77
push 1
push 0
lea ecx, [ebp - 0xf4]
call fcn.1000e820
test eax, eax
setne al
mov byte [ebp - 0xc6], al
test al, al
jne 0x1000cd77
push 0x1008953c
push 3
call fcn.100520e0
add esp, 8
push 0x10089550
push 3
call fcn.100520e0
add esp, 8
cmp byte [ebp - 0xc5], 0
je 0x1000cfd3
push 0x1008e210
push 0x10089554
push 1
call fcn.100520e0
add esp, 0xc
cmp esi, 1
jne 0x1000cdbc
push 0x1008955c
push esi
call fcn.100520e0
add esp, 8
jmp 0x1000cdcc
push esi
push 0x10089568
push 1
call fcn.100520e0
add esp, 0xc
push dword [ebp - 0x110]
push dword [ebp - 0x10c]
push 0x10089584
push 1
call fcn.100520e0
add esp, 0x10
cmp edi, 0x31
jne 0x1000cdfd
push 0x10089590
push 1
call fcn.100520e0
add esp, 8
jmp 0x1000ce3a
cmp edi, 0x32
jne 0x1000ce13
push 0x10089598
push 1
call fcn.100520e0
add esp, 8
jmp 0x1000ce3a
cmp edi, 0x30
jne 0x1000ce3a
mov eax, dword [ebp - 0xdc]
inc eax
je 0x1000ce2a
bsr eax, eax
mov dword [ebp - 0xd0], eax
push eax
push 0x100895a0
push 1
call fcn.100520e0
add esp, 0xc
cmp ebx, 1
jne 0x1000ce46
push 0x100895a8
jmp 0x1000ce5c
cmp ebx, 3
jne 0x1000ce52
push 0x100895b4
jmp 0x1000ce5c
cmp ebx, 4
jne 0x1000ce66
push 0x100895b8
push 1
call fcn.100520e0
add esp, 8
mov al, byte [ebp - 0xc7]
cmp al, 1
jne 0x1000ce77
push 0x100895c0
jmp 0x1000ce80
cmp al, 2
jne 0x1000ce8a
push 0x100895d4
push 1
call fcn.100520e0
add esp, 8
push 0x100895e4
push 1
call fcn.100520e0
mov ecx, dword [ebp - 0x140]
mov eax, 0x2aaaaaab
mov ebx, dword [ebp - 0x148]
add esp, 8
sub ecx, ebx
imul ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
je 0x1000cc09
push 0x100895e8
push 1
call fcn.100520e0
add esp, 8
xor esi, esi
test edi, edi
je 0x1000cc09
mov ecx, 0x100895fc
mov eax, ebx
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000cf00
test dl, dl
je 0x1000cefc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000cf00
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000cee0
xor eax, eax
jmp 0x1000cf05
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000cf1d
push 0x10089604
push 1
call fcn.100520e0
add esp, 8
jmp 0x1000cfaf
mov ecx, 0x10089618
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000cf44
test dl, dl
je 0x1000cf40
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000cf44
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000cf24
xor eax, eax
jmp 0x1000cf49
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000cf5e
push 0x10089620
push 1
call fcn.100520e0
add esp, 8
jmp 0x1000cfaf
mov ecx, 0x10089628
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000cf85
test dl, dl
je 0x1000cf81
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000cf85
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000cf65
xor eax, eax
jmp 0x1000cf8a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000cf9f
push 0x10089630
push 1
call fcn.100520e0
add esp, 8
jmp 0x1000cfaf
push ebx
push 0x10089634
push 1
call fcn.100520e0
add esp, 0xc
inc esi
cmp esi, edi
jae 0x1000cfc3
push 0x10089640
push 1
call fcn.100520e0
add esp, 8
add ebx, 0x18
cmp esi, edi
jb 0x1000ced7
jmp 0x1000cc09
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
je 0x1000d040
mov eax, dword [ebp - 0x10c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x110]
mov dword [ecx + 4], eax
mov byte [ecx + 8], bl
cmp edi, 0x31
jne 0x1000d002
mov byte [ecx + 9], 8
mov dword [ecx + 0xc], esi
jmp 0x1000cc09
cmp edi, 0x32
jne 0x1000d013
mov byte [ecx + 9], 0x10
mov dword [ecx + 0xc], esi
jmp 0x1000cc09
cmp edi, 0x30
jne 0x1000d038
mov eax, dword [ebp - 0xdc]
inc eax
jne 0x1000d02c
mov byte [ecx + 9], al
mov dword [ecx + 0xc], esi
jmp 0x1000cc09
bsr eax, eax
mov dword [ebp - 0xd0], eax
mov byte [ecx + 9], al
mov dword [ecx + 0xc], esi
jmp 0x1000cc09
cmp esi, 1
jle 0x1000d054
push 0x64
push 0
lea ecx, [ebp - 0xf4]
call fcn.1000e820
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
js 0x1000e538
mov esi, dword [ebp - 0x128]
test esi, esi
js 0x1000e538
cmp byte [ebp - 0xf9], 0
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x168], esi
je 0x1000d0ab
test ecx, ecx
jg 0x1000d097
test esi, esi
jg 0x1000d097
push 0x10089668
jmp 0x1000cbb2
lea ecx, [ecx*2 - 1]
mov dword [ebp - 0xd8], ecx
lea esi, [esi*2 - 1]
test ecx, ecx
jne 0x1000d0b3
test esi, esi
je 0x1000d11d
cmp dword [ebp - 0xe0], 1
jle 0x1000d0cf
push 0x10089684
call fcn.100520b0
mov ecx, dword [ebp - 0xd8]
add esp, 4
mov ebx, dword [ebp - 0x110]
mov edi, 1
lea ebx, [ebx]
test ecx, ecx
jle 0x1000d0f3
mov eax, dword [ebp - 0x10c]
dec eax
cdq
idiv edi
inc eax
cmp eax, ecx
jg 0x1000d102
test esi, esi
jle 0x1000d106
lea eax, [ebx - 1]
cdq
idiv edi
inc eax
cmp eax, esi
jle 0x1000d106
add edi, edi
jmp 0x1000d0e0
mov eax, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], edi
mov dword [eax + 0x7c], edi
jmp 0x1000d123
mov edi, dword [ebp - 0xe0]
cmp edi, 1
je 0x1000d24a
cmp byte [ebp - 0xc7], 1
jne 0x1000d24a
push 0x10089700
push 1
call fcn.100520e0
mov edi, 1
add esp, 8
mov dword [ebp - 0xe0], edi
bsr eax, edi
mov dword [ebp - 0x128], eax
mov dword [ebp - 0xd8], eax
test eax, eax
jle 0x1000d194
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x10c]
lea eax, [ecx - 1]
cdq
idiv edi
inc eax
push eax
lea eax, [esi - 1]
cdq
idiv edi
inc eax
push eax
push ecx
push esi
push edi
push 0x100896c4
push 3
call fcn.100520e0
add esp, 0x1c
xor eax, eax
mov ecx, 2
cmp ebx, 1
cmovg eax, ecx
xor ecx, ecx
add eax, ebx
cmp dword [ebp - 0xdc], 0xff
setg cl
inc ecx
imul eax, ecx
cdq
mov ebx, eax
mov edi, edx
mov eax, dword [ebp - 0x110]
dec eax
cdq
idiv dword [ebp - 0xe0]
inc eax
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x10c]
dec eax
cdq
idiv dword [ebp - 0xe0]
inc eax
cdq
push edx
push eax
push ecx
push esi
call fcn.1007f6f0
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0xe4]
cdq
push edx
push eax
push ecx
push esi
call fcn.1007f6f0
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0xd4]
cdq
push edx
push eax
push ecx
push esi
call fcn.1007f6f0
push edi
push ebx
push edx
push eax
call fcn.1007f6f0
cmp edx, 1
jb 0x1000d25d
ja 0x1000d227
cmp eax, 0x2a05f200
jbe 0x1000d25d
push 1
push 0x2a05f200
push edx
push eax
push 0x10089790
call fcn.100520b0
add esp, 0x14
lea ecx, [ebp - 0x54]
call fcn.10003000
jmp 0x1000e56b
test edi, edi
jne 0x1000d153
mov dword [ebp - 0xd8], edi
jmp 0x1000d194
mov eax, dword [ebp - 0xd4]
cmp eax, 0xc350
jle 0x1000d274
push 0x10089858
jmp 0x1000cbb2
mov ebx, dword [ebp - 0x124]
xor edi, edi
lea esp, [esp]
cmp edi, eax
jge 0x1000d380
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc4]
push dword [ebp - 0xd8]
call fcn.10002520
push eax
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.10007050
lea ecx, [ebp - 0xc4]
call fcn.10002f60
mov dword [ebp - 4], 1
push dword [ebp - 0xe4]
mov ecx, dword [ebx]
push dword [ebp - 0xdc]
imul esi, edi, 0x6c
add ecx, esi
push ecx
push dword [ebp - 0x110]
push dword [ebp - 0x10c]
call fcn.10002830
test al, al
je 0x1000cbba
mov eax, dword [ebx]
mov cl, byte [ebp - 0xc6]
mov byte [esi + eax + 0x3c], cl
lea eax, [ebp - 0xf0]
mov ecx, dword [ebx]
add ecx, 0x60
push eax
add ecx, esi
call fcn.10006680
cmp dword [ebp - 0xd4], 1
jle 0x1000d328
push 0xea60
push 0
lea ecx, [ebp - 0xf4]
call fcn.1000e820
mov ecx, dword [ebx]
mov dword [esi + ecx + 0x38], eax
cmp dword [ebp - 0x150], 0
je 0x1000d361
push dword [ebp - 0xd8]
lea ecx, [ebp - 0xc4]
call fcn.10002520
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x144]
push eax
call fcn.10007050
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 1
call fcn.10002f60
mov eax, dword [ebp - 0xd4]
inc edi
jmp 0x1000d280
mov esi, dword [ebp - 0xf8]
lea ecx, [ebp - 0xf4]
push 1
push 0
mov dword [esi + 0x68], 2
mov dword [esi + 0x64], 0xd79435e
call fcn.1000e820
test eax, eax
je 0x1000d3f1
push 0x7f
push 1
lea ecx, [ebp - 0xf4]
call fcn.1000e820
push 0x7e
push 2
lea ecx, [ebp - 0xf4]
mov dword [esi + 0x68], eax
call fcn.1000e820
mov ecx, eax
xor edx, edx
or eax, 0xffffffff
div ecx
push 1
push 0
lea ecx, [ebp - 0xf4]
mov dword [esi + 0x64], eax
call fcn.1000e820
test eax, eax
je 0x1000d3f1
push 0x1008981c
jmp 0x1000cbb2
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
mov byte [ebp - 4], 8
mov ecx, dword [ebx]
call fcn.100536d0
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x120]
call fcn.1000e6f0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
je 0x1000d468
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x100898bc
push 4
call fcn.100520e0
add esp, 8
mov dword [ebp - 0xcc], 0
lea ecx, [ebp - 0x164]
mov dword [ebp - 0xd0], 0
or esi, 0xffffffff
call fcn.1000e7e0
test al, al
je 0x1000d7b5
mov edi, dword [ebp - 0x11c]
jmp 0x1000d4b0
mov ecx, dword [ebp - 0x114]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 4]
jae 0x1000d7a6
lea eax, [ebp - 0xd0]
push eax
lea edx, [ebp - 0x164]
lea ecx, [ebp - 0x3c]
call fcn.1000f8e0
add esp, 4
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0xd0]
cmp eax, esi
jle 0x1000d78b
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x13c], eax
lea ecx, [ebp - 0xd8]
call fcn.10055d70
mov byte [ebp - 4], 0xb
mov esi, dword [ebp - 0xd8]
mov edi, dword [edi - 4]
mov dword [ebp - 0x128], edi
test esi, esi
je 0x1000d770
mov eax, dword [esi]
mov ecx, esi
push edi
mov eax, dword [eax + 4]
call eax
test al, al
je 0x1000d720
mov ecx, dword [ebp - 0xcc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xcc], ecx
test eax, eax
jle 0x1000d54f
push 0x10089944
push 4
call fcn.100520e0
add esp, 8
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
push 0x10089a00
push 4
call fcn.100520e0
add esp, 0xc
lea ecx, [ebp - 0x3c]
mov edx, 0x10089a04
call fcn.1000eea0
test al, al
je 0x1000d5a2
mov ecx, dword [ebx + 4]
mov eax, 0x4bda12f7
sub ecx, dword [ebx]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb 0x1000d739
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xc]
mov edx, 0x10089a14
lea ecx, [ebp - 0x3c]
call fcn.1000eea0
test al, al
je 0x1000d615
mov ecx, dword [ebx + 4]
mov eax, 0x4bda12f7
mov edi, dword [ebx]
mov edx, ecx
sub edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb 0x1000d739
lea edx, [eax - 1]
mov eax, edi
cmp eax, ecx
je 0x1000d5ee
nop
cmp dword [eax + 0x58], 0
jl 0x1000d5e7
dec edx
add eax, 0x6c
cmp eax, ecx
jne 0x1000d5e0
mov ecx, esi
cmp edx, 1
jl 0x1000d73b
imul edx, dword [edi + 0x18]
mov eax, dword [esi]
push edx
call dword [eax + 0xc]
mov eax, dword [ebx]
mov ecx, esi
mov edx, dword [esi]
push dword [eax + 0x14]
call dword [edx + 0xc]
mov edi, dword [ebp - 0x128]
mov edx, 0x10089a20
lea ecx, [ebp - 0x3c]
call fcn.1000eea0
test al, al
je 0x1000d64d
mov ecx, dword [ebx + 4]
mov eax, 0x4bda12f7
sub ecx, dword [ebx]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jb 0x1000d739
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xc]
mov edx, 0x10089a30
lea ecx, [ebp - 0x3c]
call fcn.1000eea0
test al, al
je 0x1000d66c
mov eax, dword [ebx]
mov ecx, esi
mov edx, dword [esi]
movzx eax, byte [eax + 0x3c]
push eax
call dword [edx + 0xc]
mov eax, dword [esi]
lea ecx, [ebp - 0x164]
push ecx
push edi
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
mov ecx, esi
test al, al
je 0x1000d73b
mov eax, dword [esi]
push edi
push ebx
call dword [eax + 0x20]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x120]
call fcn.1000e6f0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0xe4]
test ecx, ecx
je 0x1000d6be
mov eax, dword [ecx]
push 1
call dword [eax]
mov edi, dword [ebp - 0x11c]
mov dword [ebp - 0xe4], edi
cmp dword [edi - 4], 0
je 0x1000d739
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x134]
call fcn.1000e6f0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
je 0x1000d6f6
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 8
call fcn.10006370
lea ecx, [ebp - 0x164]
call fcn.1000e7e0
test al, al
je 0x1000d7c1
mov esi, dword [ebp - 0x13c]
jmp 0x1000d4b0
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
push 0x100899c0
call fcn.100520b0
add esp, 8
mov ecx, esi
mov byte [ebp - 4], 0xa
mov eax, dword [esi]
push 1
call dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.10006370
lea ecx, [ebp - 0x134]
call fcn.1000ea20
lea ecx, [ebp - 0x120]
call fcn.1000ea20
lea ecx, [ebp - 0x54]
call fcn.10003000
jmp 0x1000e56b
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
push 0x10089904
call fcn.100520b0
add esp, 8
jmp 0x1000d745
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
push 0x10089948
call fcn.100520b0
add esp, 8
jmp 0x1000d745
push 0x100898cc
call fcn.100520b0
add esp, 4
jmp 0x1000d74d
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov byte [ebp - 4], 0xd
xor edx, edx
mov ecx, dword [ebp - 0x134]
xor ebx, ebx
mov edi, dword [ebp - 0x130]
mov esi, ecx
sub edi, ecx
add edi, 3
shr edi, 2
cmp ecx, dword [ebp - 0x130]
cmova edi, edx
test edi, edi
je 0x1000d832
lea ebx, [ebx]
mov eax, dword [esi]
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x13c]
push eax
call fcn.1000e780
inc ebx
lea esi, [esi + 4]
cmp ebx, edi
jne 0x1000d810
cmp dword [ebp - 0xcc], 0
jne 0x1000d842
push 0x10089a40
jmp 0x1000d847
push 0x10089a48
push 4
call fcn.100520e0
mov edi, dword [ebp - 0xe4]
add esp, 8
cmp byte [ebp - 0xc6], 0
mov ebx, dword [ebp - 0xf8]
mov edi, dword [edi - 4]
mov dword [ebp - 0x138], edi
mov dword [ebx + 0x60], 0
je 0x1000d8ba
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp eax, 3
jle 0x1000d8ba
mov eax, dword [edi]
mov ecx, edi
push 3
call dword [eax + 8]
test eax, eax
jg 0x1000d8ba
cmp byte [ebp - 0xc7], 2
jne 0x1000d8ba
push 2
push 0
lea ecx, [ebp - 0xf4]
call fcn.1000e820
push eax
push 0x10089a4c
push 4
mov dword [ebx + 0x60], eax
call fcn.100520e0
add esp, 0xc
mov eax, dword [edi]
xor esi, esi
mov ecx, edi
mov dword [ebp - 0xcc], esi
xor ebx, ebx
call dword [eax + 4]
test eax, eax
jle 0x1000d8ff
nop
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 0xc]
mov edx, dword [edi]
mov ecx, edi
push ebx
mov esi, eax
call dword [edx + 8]
cmp eax, esi
mov esi, dword [ebp - 0xcc]
jge 0x1000d8f3
inc esi
mov dword [ebp - 0xcc], esi
mov eax, dword [edi]
mov ecx, edi
inc ebx
call dword [eax + 4]
cmp ebx, eax
jl 0x1000d8d0
mov eax, esi
mov dword [0x1009b7b4], 0
imul eax, dword [ebp - 0x110]
xor edx, edx
xorps xmm0, xmm0
movlpd qword [0x1009b7a0], xmm0
imul eax, dword [ebp - 0x10c]
div dword [ebp - 0xe0]
xor edx, edx
div dword [ebp - 0xe0]
mov edx, eax
mov ecx, edx
mov dword [0x1009b7b0], edx
or ecx, 0
jne 0x1000d96c
mov ecx, 1
mov dword [0x1009b7a4], 0
mov edx, ecx
mov dword [0x1009b7a0], ecx
mov dword [0x1009b7b0], edx
mov dword [0x1009b7b4], 0
jmp 0x1000d972
mov ecx, dword [0x1009b7a0]
push dword [ebp - 0x14c]
mov eax, dword [ebp + 0x10]
push edx
push esi
push ecx
push 0x10089a70
push 9
mov dword [0x1009b7a8], eax
mov dword [0x100982f8], 0xffffffff
call fcn.100520e0
mov eax, dword [edi]
add esp, 0x18
mov ecx, edi
xor esi, esi
call dword [eax + 4]
test eax, eax
jle 0x1000d9de
lea esp, [esp]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0xc]
push eax
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 8]
push eax
push esi
push 0x10089abc
push 0xa
call fcn.100520e0
mov eax, dword [edi]
add esp, 0x14
mov ecx, edi
inc esi
call dword [eax + 4]
cmp esi, eax
jl 0x1000d9b0
mov eax, dword [edi]
mov ecx, edi
xor ebx, ebx
call dword [eax + 4]
test eax, eax
jle 0x1000da7e
nop
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 0xc]
mov edx, dword [edi]
mov ecx, edi
push ebx
mov esi, eax
call dword [edx + 8]
cmp eax, esi
jl 0x1000da6e
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 8]
push eax
push ebx
push 0x10089ad0
push 6
call fcn.100520e0
mov ecx, dword [ebp - 0xd4]
add esp, 0x10
test ecx, ecx
jle 0x1000da6e
xor eax, eax
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0x124]
push ebx
mov esi, dword [ecx]
mov ecx, edi
add esi, eax
mov eax, dword [edi]
call dword [eax + 8]
cmp ebx, 3
jg 0x1000da57
push eax
push ebx
mov ecx, esi
call fcn.10002d00
mov eax, dword [ebp - 0xd0]
add eax, 0x6c
dec dword [ebp - 0xcc]
mov dword [ebp - 0xd0], eax
jne 0x1000da37
mov eax, dword [edi]
mov ecx, edi
inc ebx
call dword [eax + 4]
cmp ebx, eax
jl 0x1000d9f0
mov ebx, dword [ebp - 0x124]
mov byte [ebp - 0xd8], 0
mov eax, dword [ebx]
cmp byte [eax + 0x30], 0
je 0x1000dae2
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0xc]
cmp eax, 0x100
jge 0x1000dae2
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0x9c], 0
je 0x1000dae2
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp eax, 4
jl 0x1000dad6
mov eax, dword [edi]
mov ecx, edi
push 3
call dword [eax + 0xc]
mov edx, dword [edi]
mov ecx, edi
push 3
mov esi, eax
call dword [edx + 8]
cmp eax, esi
jne 0x1000dae2
mov byte [ebp - 0xd8], 1
jmp 0x1000dbab
mov esi, dword [ebp - 0xd4]
test esi, esi
jle 0x1000dbb1
xor edi, edi
mov dword [ebp - 0xcc], esi
mov esi, dword [ebx]
add esi, edi
mov ecx, dword [esi]
test ecx, ecx
je 0x1000db96
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
je 0x1000db96
mov ecx, dword [esi]
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi]
mov dword [ebp - 0xd0], eax
mov dword [esi], 0
test ecx, ecx
je 0x1000db39
mov eax, dword [ecx]
push 1
call dword [eax + 0x34]
cmp dword [esi + 0x2c], 8
lea eax, [esi + 0x28]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [esi + 0x18]
lea edx, [esi + 0x14]
push eax
jg 0x1000db6f
lea ecx, [ebp - 0x13c]
call fcn.10008160
add esp, 0xc
mov ecx, esi
push eax
call fcn.10008200
mov ecx, dword [ebp - 0x13c]
jmp 0x1000db8b
lea ecx, [ebp - 0x128]
call fcn.100082d0
add esp, 0xc
mov ecx, esi
push eax
call fcn.10008200
mov ecx, dword [ebp - 0x128]
test ecx, ecx
je 0x1000db96
mov eax, dword [ecx]
push 1
call dword [eax + 0x34]
add edi, 0x6c
dec dword [ebp - 0xcc]
jne 0x1000daf8
mov edi, dword [ebp - 0x138]
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], 0
test esi, esi
jle 0x1000dbf6
xor esi, esi
mov ecx, dword [ebx]
push dword [ebp - 0xd8]
add ecx, esi
call fcn.10002930
test al, al
je 0x1000dcc3
mov eax, dword [ebp - 0xd0]
add esi, 0x6c
inc eax
mov dword [ebp - 0xd0], eax
cmp eax, dword [ebp - 0xd4]
jl 0x1000dbc1
mov esi, dword [ebp - 0xd4]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp eax, 3
jle 0x1000dc2d
mov eax, dword [edi]
mov ecx, edi
push 3
call dword [eax + 8]
test eax, eax
jle 0x1000dc2d
test esi, esi
jle 0x1000dc2d
xor ecx, ecx
mov edx, esi
jmp 0x1000dc20
mov eax, dword [ebx]
lea ecx, [ecx + 0x6c]
mov byte [ecx + eax - 0x30], 0
dec edx
jne 0x1000dc20
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp eax, 3
jle 0x1000dc5d
mov eax, dword [edi]
mov ecx, edi
push 3
call dword [eax + 0xc]
test eax, eax
jne 0x1000dc5d
test esi, esi
jle 0x1000dc5d
xor ecx, ecx
mov edx, esi
mov edi, edi
mov eax, dword [ebx]
lea ecx, [ecx + 0x6c]
mov byte [ecx + eax - 0x30], 0
dec edx
jne 0x1000dc50
mov eax, dword [edi]
mov ecx, edi
mov dword [ebp - 0xcc], 0
call dword [eax + 4]
test eax, eax
jle 0x1000ddfd
xor ebx, ebx
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 0xc]
mov edx, dword [edi]
mov ecx, edi
push ebx
mov esi, eax
call dword [edx + 8]
cmp esi, eax
jle 0x1000dcf0
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 0xc]
mov edx, dword [edi]
mov ecx, edi
push ebx
mov esi, eax
call dword [edx + 8]
sub esi, eax
lea esi, [esi*2 - 1]
test esi, esi
jne 0x1000dcd3
mov esi, dword [ebp - 0xcc]
xor eax, eax
inc eax
cmp eax, esi
cmovg esi, eax
mov dword [ebp - 0xcc], esi
jmp 0x1000dcf6
lea ecx, [ebp - 0x108]
call fcn.10006400
jmp 0x1000d74d
bsr eax, esi
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0x138], eax
inc eax
cmp eax, esi
cmovg esi, eax
mov dword [ebp - 0xcc], esi
jmp 0x1000dcf6
mov esi, dword [ebp - 0xcc]
mov eax, dword [edi]
mov ecx, edi
inc ebx
call dword [eax + 4]
cmp ebx, eax
jl 0x1000dc78
mov ebx, dword [ebp - 0x124]
cmp esi, 0xa
jle 0x1000ddfd
cmp esi, 0x12
jle 0x1000ddc7
push 0x10089af8
call fcn.100520b0
mov eax, dword [ebp - 0x108]
add esp, 4
test eax, eax
je 0x1000dd5c
push eax
call fcn.1006f76a
add esp, 4
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
lea ecx, [ebp - 0x134]
call fcn.1000ea20
lea ecx, [ebp - 0x120]
call fcn.1000ea20
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x1000dd97
push eax
call fcn.1006f76a
add esp, 4
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov esi, dword [ebp - 0x148]
test esi, esi
je 0x1000e576
push dword [ebp - 0x154]
mov edx, dword [ebp - 0x140]
push ecx
mov ecx, esi
call fcn.10008bf0
push esi
call fcn.1006f76a
add esp, 0xc
jmp 0x1000e576
push dword [ebp - 0x144]
mov esi, dword [ebp - 0x114]
lea eax, [ebp - 0x108]
push dword [ebp - 0x158]
mov edx, esi
lea ecx, [ebp - 0x164]
push dword [ebp - 0x150]
push dword [ebp - 0xf8]
push eax
push edi
push ebx
call fcn.1000fd70
jmp 0x1000de31
push dword [ebp - 0x144]
mov esi, dword [ebp - 0x114]
lea eax, [ebp - 0x108]
push dword [ebp - 0x158]
mov edx, esi
lea ecx, [ebp - 0x164]
push dword [ebp - 0x150]
push dword [ebp - 0xf8]
push eax
push edi
push ebx
call fcn.1000f980
add esp, 0x1c
mov byte [ebp - 0xc5], al
push 0x10089b38
push 2
call fcn.10052110
mov edi, dword [esi + 8]
add esp, 8
mov eax, dword [ebx]
sub esp, 8
mov ecx, dword [ebp - 0xd4]
movd xmm1, dword [ebp - 0xe0]
movd xmm2, edi
mov edx, dword [eax + 0x18]
mov esi, dword [eax + 0x14]
mov eax, edx
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
cvtdq2pd xmm1, xmm1
mulsd xmm2, qword [0x1008f1d8]
cmp ecx, 1
jne 0x1000deef
movd xmm0, edx
mov ecx, esi
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [eax*8 + 0x1008f290]
mov eax, edx
xor edx, edx
div dword [ebp - 0xe0]
divsd xmm2, xmm0
xor edx, edx
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm1
addsd xmm0, qword [ecx*8 + 0x1008f290]
mulsd xmm2, xmm1
divsd xmm2, xmm0
movsd qword [esp], xmm2
push eax
mov eax, esi
div dword [ebp - 0xe0]
push eax
push edi
push 0x1008e210
push 0x10089b68
push 2
call fcn.100520e0
add esp, 0x20
jmp 0x1000df68
movd xmm0, ecx
mov ecx, esi
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
divsd xmm2, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x1008f290]
mov eax, edx
xor edx, edx
div dword [ebp - 0xe0]
divsd xmm2, xmm0
xor edx, edx
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm1
addsd xmm0, qword [ecx*8 + 0x1008f290]
mulsd xmm2, xmm1
divsd xmm2, xmm0
movsd qword [esp], xmm2
push eax
mov eax, esi
div dword [ebp - 0xe0]
push eax
push dword [ebp - 0xd4]
push edi
push 0x1008e210
push 0x10089ba8
push 2
call fcn.100520e0
add esp, 0x24
mov ecx, dword [ebp - 0xf4]
mov edi, dword [ecx + 4]
mov edx, edi
mov eax, dword [ecx + 8]
mov esi, edi
shr edx, 1
sub esi, edx
cmp eax, esi
jb 0x1000df96
sub eax, edi
mov dword [ecx + 4], edx
add eax, edx
mov dword [ecx + 8], eax
call fcn.1000ebe0
mov eax, 1
jmp 0x1000dfa0
mov dword [ecx + 4], esi
call fcn.1000ebe0
xor eax, eax
mov edi, dword [ebx + 4]
test eax, eax
mov esi, dword [ebx]
setne byte [ebp - 0xc7]
cmp esi, edi
je 0x1000dfe6
mov bl, byte [ebp - 0xc5]
mov ecx, esi
call fcn.10009a60
test bl, bl
je 0x1000dfd9
cmp dword [ebp - 0x14c], 0x64
jl 0x1000dfd9
cmp dword [ebp - 0xe0], 1
jne 0x1000dfd9
mov byte [esi + 0x5c], 1
add esi, 0x6c
cmp esi, edi
jne 0x1000dfb8
mov ebx, dword [ebp - 0x124]
cmp byte [ebp - 0xd8], 0
je 0x1000e1b0
mov eax, dword [ebx]
cmp byte [eax + 0x30], 0
je 0x1000e1b0
mov eax, dword [ebp - 0x104]
cmp dword [ebp - 0x108], eax
je 0x1000e1e4
mov esi, dword [ebp - 0xe4]
mov ecx, dword [eax - 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
test al, al
jne 0x1000e075
mov eax, dword [ebp - 0x104]
push 1
push 1
push ebx
mov ecx, dword [eax - 4]
mov eax, dword [ecx]
call dword [eax + 0x24]
mov eax, dword [ebp - 0x104]
add esi, 0xfffffffc
sub eax, 4
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0x104], eax
mov ecx, dword [esi]
test ecx, ecx
je 0x1000e062
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x11c], esi
cmp dword [ebp - 0x108], eax
jne 0x1000e017
jmp 0x1000e1e4
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x104]
je 0x1000e1e4
mov edi, dword [esi - 4]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 4], 0xf
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 4]
push eax
push dword [ebp - 0xdc]
mov eax, dword [edi]
mov ecx, edi
sub esp, 8
push 1
call dword [eax + 0xc]
inc eax
lea ecx, [ebp - 0xc4]
push eax
call fcn.10002440
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x10
call fcn.10007050
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0xf
call fcn.10002f60
mov eax, dword [edi]
mov ecx, edi
push 1
xor esi, esi
call dword [eax + 0xc]
test eax, eax
js 0x1000e113
mov eax, dword [ebp - 0x30]
push esi
push esi
push 0
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
push 1
inc esi
call dword [eax + 0xc]
cmp esi, eax
jle 0x1000e0f6
mov eax, dword [ebp - 0x104]
cmp dword [ebp - 0x108], eax
je 0x1000e148
mov ecx, dword [eax - 4]
lea edx, [ebp - 0x30]
push 1
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 0x24]
mov eax, dword [ebp - 0x104]
sub eax, 4
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x108], eax
jne 0x1000e121
push 0x6c
call fcn.1006f89d
add esp, 4
mov dword [ebp - 0x138], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x1000e16d
mov ecx, dword [ebp - 0x30]
push eax
call fcn.10002c90
mov edx, eax
jmp 0x1000e16f
xor edx, edx
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
cmp eax, ecx
je 0x1000e182
mov dword [eax + 0x34], edx
add eax, 0x6c
cmp eax, ecx
jne 0x1000e178
mov byte [ebp - 4], 0xd
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x1000e1e4
mov edi, dword [ebp - 0x2c]
cmp esi, edi
je 0x1000e1a5
mov ecx, esi
call fcn.10002f60
add esi, 0x6c
cmp esi, edi
jne 0x1000e194
mov esi, dword [ebp - 0x30]
push esi
call fcn.1006f76a
add esp, 4
jmp 0x1000e1e4
mov eax, dword [ebp - 0x104]
cmp dword [ebp - 0x108], eax
je 0x1000e1e4
mov edi, edi
mov ecx, dword [eax - 4]
push 1
push 1
push ebx
mov eax, dword [ecx]
call dword [eax + 0x24]
mov eax, dword [ebp - 0x104]
sub eax, 4
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x108], eax
jne 0x1000e1c0
mov eax, dword [ebp - 0x134]
mov esi, eax
mov edi, dword [ebp - 0x130]
cmp eax, edi
je 0x1000e20f
mov ecx, dword [esi]
test ecx, ecx
je 0x1000e202
mov eax, dword [ecx]
push 1
call dword [eax]
add esi, 4
cmp esi, edi
jne 0x1000e1f6
mov eax, dword [ebp - 0x134]
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x120]
mov esi, eax
cmp eax, edi
je 0x1000e240
mov ecx, dword [esi]
test ecx, ecx
je 0x1000e233
mov eax, dword [ecx]
push 1
call dword [eax]
add esi, 4
cmp esi, edi
jne 0x1000e227
mov eax, dword [ebp - 0x120]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0x11c], eax
cmp dword [edi + 0x6c], 0
jne 0x1000e25c
push 0x10089bf8
jmp 0x1000e39c
mov esi, dword [ebx]
cmp dword [esi + 0x34], 0
je 0x1000e270
push 0x10089c20
push 2
jmp 0x1000e39e
cmp dword [ebp - 0x14c], 0x64
jl 0x1000e397
mov eax, dword [ebp - 0xe0]
cmp eax, 1
jne 0x1000e37a
cmp byte [ebp - 0xc5], 0
je 0x1000e37c
cmp byte [ebp - 0xc7], 0
je 0x1000e373
cmp byte [ebp - 0xc6], 0
je 0x1000e2c4
mov edi, dword [ebx + 4]
cmp esi, edi
je 0x1000e2c4
mov ecx, esi
call fcn.10009ae0
add esi, 0x6c
cmp esi, edi
jne 0x1000e2b6
mov eax, dword [ebx]
xor esi, esi
mov dword [ebp - 0x138], eax
mov edi, dword [eax + 0x14]
shl edi, 0x10
add edi, dword [eax + 0x18]
cmp dword [eax + 0x24], esi
jle 0x1000e2f7
mov ebx, eax
mov edi, edi
mov ecx, dword [ebx + esi*4]
push edi
mov eax, dword [ecx]
call dword [eax + 0x40]
inc esi
mov edi, eax
cmp esi, dword [ebx + 0x24]
jl 0x1000e2e0
mov ebx, dword [ebp - 0x124]
push edi
push 0x10089b3c
push 8
call fcn.100520e0
add esp, 0xc
lea ecx, [ebp - 0xf4]
push 0xffff
push 0
call fcn.1000e820
push 0xffff
mov esi, eax
lea ecx, [ebp - 0xf4]
push 0
shl esi, 0x10
call fcn.1000e820
add esi, eax
push esi
push 0x10089b54
push 8
call fcn.100520e0
add esp, 0xc
cmp edi, esi
je 0x1000e35f
push esi
push edi
push 0x10089c60
push 1
call fcn.100520e0
mov edi, dword [ebp - 0xf8]
add esp, 0x10
jmp 0x1000e3a6
push 0x10089cbc
push 3
call fcn.100520e0
mov edi, dword [ebp - 0xf8]
jmp 0x1000e3a3
push 0x10089cd0
jmp 0x1000e39c
jg 0x1000e397
cmp dword [edi + 0x98], 0
je 0x1000e38e
push 0x10089d30
push 4
jmp 0x1000e39e
push 0x10089d4c
push 1
jmp 0x1000e39e
push 0x10089cf4
push 3
call fcn.100520e0
add esp, 8
cmp byte [ebp - 0xf9], 0
je 0x1000e3d0
mov edx, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x10c]
push ebx
push dword [ebp - 0x168]
push dword [ebp - 0x154]
call fcn.1000a220
add esp, 0xc
mov eax, dword [0x1009b7a8]
mov ecx, 0x2710
mov esi, dword [ebp - 0x150]
cmp eax, ecx
cmovg eax, ecx
mov dword [0x1009b7a8], eax
test esi, esi
je 0x1000e47e
cmp eax, dword [0x100982f8]
jle 0x1000e47e
mov eax, dword [ebp - 0x144]
push 0
push ecx
push dword [0x1009b7a4]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
push dword [0x1009b7a0]
mov dword [ebp - 0x3c], 0x1008e428
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x2c], eax
call fcn.1007f6f0
push dword [0x1009b7b4]
push dword [0x1009b7b0]
push edx
push eax
call fcn.1007f740
mov ecx, eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
push eax
mov eax, dword [ebp - 0x114]
push dword [ebp - 0x158]
push 1
mov eax, dword [eax + 8]
cdq
push edx
push eax
push ecx
call esi
mov byte [ebp - 4], 0xd
add esp, 0x18
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x1000e47e
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
cmp dword [edi + 0x70], 0
je 0x1000e495
mov ecx, dword [ebx]
lea eax, [ebp - 0xf0]
push eax
add ecx, 0x60
call fcn.10006680
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x1000e4c6
push eax
call fcn.1006f76a
add esp, 4
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov eax, dword [ebp - 0x134]
test eax, eax
je 0x1000e4d9
push eax
call fcn.1006f76a
add esp, 4
lea ecx, [ebp - 0x120]
call fcn.1000ea20
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x1000e509
push eax
call fcn.1006f76a
add esp, 4
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov esi, dword [ebp - 0x148]
test esi, esi
je 0x1000cc1c
push dword [ebp - 0x154]
mov edx, dword [ebp - 0x140]
push ecx
mov ecx, esi
call fcn.10008bf0
push esi
call fcn.1006f76a
add esp, 0xc
mov al, 1
jmp 0x1000e578
push 0x10089644
jmp 0x1000cbb2
push 0x10089450
jmp 0x1000e563
push 0x10089420
jmp 0x1000e563
push 0x1008939c
jmp 0x1000e563
push str.Invalid_or_unknown_FLIF
jmp 0x1000e563
push str.Invalid_or_unknown_FLIF_format_byte_n
call fcn.100520b0
add esp, 4
lea ecx, [ebp - 0xf0]
call fcn.10006640
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.1006ece9
mov esp, ebp
pop ebp
ret