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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3cc
mov eax, dword [0x101a8cb0]
xor eax, esp
mov dword [esp + 0x3c8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x1c]
push edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0xffff
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 1
test esi, esi
je 0x1007f35f
lea ecx, [esi + 0x10]
push 0x101466f8
push ecx
call fcn.100338a0
add esp, 8
test eax, eax
jne 0x1007f35f
mov dword [esp + 0x1c], eax
xor eax, eax
push 0x54
push eax
lea edx, [esp + 0x78]
push edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
call fcn.1002a420
add esp, 0xc
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
test esi, esi
jne 0x1007f3a5
lea eax, [esp + 0x70]
mov dword [esp + 0xc], eax
push edi
call fcn.10078c40
push ebx
call fcn.10078c40
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10078c40
add esp, 0xc
test edi, edi
je 0x1007f3e1
mov eax, dword [edi]
xor esi, esi
test eax, eax
je 0x1007f3e5
lea ebx, [ebx]
cmp word [eax], 2
jne 0x1007f3e5
mov eax, dword [edi + esi*4 + 4]
inc esi
test eax, eax
jne 0x1007f3d0
jmp 0x1007f3e5
mov esi, dword [esp + 0x4c]
test ebx, ebx
je 0x1007f408
mov eax, dword [ebx]
xor ecx, ecx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x1007f408
cmp word [eax], 2
jne 0x1007f404
mov eax, dword [ebx + ecx*4 + 4]
inc ecx
test eax, eax
jne 0x1007f3f5
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x34]
test edx, edx
je 0x1007f433
mov eax, dword [edx]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x1007f433
lea esp, [esp]
cmp word [eax], 2
jne 0x1007f42f
mov eax, dword [edx + ecx*4 + 4]
inc ecx
test eax, eax
jne 0x1007f420
mov dword [esp + 0x20], ecx
push 0x13e
lea edx, [esp + 0x20c]
push 0
push edx
call fcn.1002a420
push 0x13e
lea eax, [esp + 0xd8]
push 0
push eax
call fcn.1002a420
lea ecx, [esp + 0x5c]
push ecx
call fcn.10009b30
movzx eax, ax
add esp, 0x1c
test ax, ax
jne 0x10080270
mov edx, dword [esp + 0x44]
push 0x7d00
push edx
call fcn.10009ed0
add esp, 8
test eax, eax
jne 0x1007f4b1
mov eax, dword [esp + 0x44]
push eax
call fcn.10009d90
add esp, 4
mov eax, 0x66
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c8]
xor ecx, esp
call fcn.1002aab0
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x48]
push ebx
call fcn.10032e30
push 3
lea ecx, [esp + 0x210]
push ebx
push ecx
call fcn.1000aae0
movzx ebx, ax
add esp, 0x10
test bx, bx
je 0x1007f4fd
mov edx, dword [esp + 0x44]
push edx
call fcn.10009d90
add esp, 4
mov eax, 0xc9
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c8]
xor ecx, esp
call fcn.1002aab0
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x70], 1
mov dword [esp + 0x2c], eax
nop
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10080246
push 1
push eax
lea edx, [esp + 0xd0]
push edx
call fcn.1000aae0
movzx ebx, ax
add esp, 0xc
test bx, bx
jne 0x10080201
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + ecx*4]
push 0
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.1000c5c0
add esp, 0xc
cmp dword [esp + 0x2c], 0
jne 0x1007f737
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
push esi
push edi
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0xe8]
push ecx
call fcn.1007e9a0
movzx ebx, ax
add esp, 0x24
cmp bx, 3
jne 0x1007f72e
push 1
xor ebx, ebx
lea edx, [esp + 0xcc]
push ebx
push edx
call fcn.1000c5c0
mov dword [esp + 0x5c], eax
lea eax, [esp + 0xd4]
push eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x84], 0x4000
call fcn.1000ac00
lea ecx, [esp + 0x218]
push ecx
call fcn.1000ac00
add esp, 0x14
cmp esi, ebx
jg 0x1007f5fb
cmp dword [esp + 0x14], ebx
jle 0x1007f6b5
test esi, esi
jle 0x1007f64f
mov ecx, 0x10
mov eax, dword [edi + ebx*4]
cmp word [eax], 2
jne 0x1007f613
cmp word [eax + 2], cx
je 0x1007f61a
inc ebx
cmp ebx, esi
jl 0x1007f604
jmp 0x1007f64f
cmp ebx, esi
jge 0x1007f64f
mov ecx, dword [eax + 4]
lea edx, [esp + 0x350]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 8]
push ecx
push edx
lea eax, [esp + 0x358]
push eax
call fcn.10031ea0
mov ecx, dword [edi + ebx*4]
mov edx, dword [ecx + 4]
add esp, 0xc
mov byte [esp + edx + 0x350], 0
mov ecx, dword [esp + 0x14]
xor ebx, ebx
test ecx, ecx
jle 0x1007f6b5
mov edx, dword [esp + 0x18]
lea ecx, [ecx]
mov eax, dword [edx + ebx*4]
cmp word [eax], 2
jne 0x1007f670
cmp word [eax + 2], 0x10
je 0x1007f677
inc ebx
cmp ebx, ecx
jl 0x1007f660
jmp 0x1007f6b5
cmp ebx, ecx
jge 0x1007f6b5
mov ecx, edx
lea eax, [esp + 0x350]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + ebx*4]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push edx
push eax
lea ecx, [esp + 0x358]
push ecx
call fcn.10031ea0
mov edx, dword [esp + 0x24]
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax + 4]
add esp, 0xc
mov byte [esp + ecx + 0x350], 0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
push edx
push 0
push eax
push ecx
call fcn.1007f050
movzx ebx, ax
add esp, 0x10
test bx, bx
jne 0x10080220
mov edx, dword [esp + 0x3c]
mov eax, dword [edx]
push 1
push eax
lea ecx, [esp + 0xd0]
push ecx
call fcn.1000aae0
mov edx, dword [esp + 0x5c]
push 0
push edx
lea eax, [esp + 0xdc]
push eax
call fcn.1000c5c0
mov ecx, dword [esp + 0x60]
push 5
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.1000aae0
push 2
lea eax, [esp + 0x230]
push 0
push eax
call fcn.1000c5c0
add esp, 0x30
jmp 0x1007f737
test bx, bx
jne 0x1008023a
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xcc]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.10079e30
add esp, 0x14
test eax, eax
jl 0x100800c4
cmp word [esp + 0x5a], 0
jne 0x1007f78c
lea eax, [esp + 0x64]
push 0x10146b08
push eax
call fcn.10003cb0
lea ecx, [esp + 0x48]
push 0x10146b08
push ecx
call fcn.10003cb0
add esp, 0x10
mov edx, dword [esp + 0x58]
cmp word [esp + 0x10], dx
je 0x1007f955
test edi, edi
je 0x1007fa4f
mov eax, dword [edi + esi*4]
test eax, eax
je 0x1007f86c
mov edi, edi
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007f86c
jb 0x1007f7cd
movzx ecx, word [eax + 2]
cmp cx, word [esp + 0x5a]
jae 0x1007f86c
mov cx, word [esp + 0x10]
cmp word [eax], cx
jne 0x1007f86c
lea edx, [esp + 0x348]
push edx
push eax
call fcn.10073db0
add esp, 8
test ax, ax
je 0x1007f805
mov ecx, dword [edi + esi*4]
lea eax, [esp + 0x348]
push eax
push ecx
call fcn.10078760
add esp, 8
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xcc]
push eax
push ecx
mov ecx, dword [edi + esi*4]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x358]
push eax
push ecx
call fcn.10079b30
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + esi*4]
push eax
push eax
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x36c]
push eax
push ecx
call fcn.1007d2b0
movzx ebx, ax
add esp, 0x2c
test bx, bx
jne 0x10080246
mov eax, dword [edi + esi*4 + 4]
mov edx, dword [esp + 0x58]
inc esi
test eax, eax
jne 0x1007f7b0
mov eax, dword [edi + esi*4]
test eax, eax
je 0x1007f955
jmp 0x1007f880
movzx ecx, word [eax]
cmp cx, dx
jae 0x1007f955
cmp word [esp + 0x10], cx
je 0x1007f8b7
mov edx, dword [esp + 0xc]
movzx eax, word [eax + 2]
push edx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x40]
push edx
push eax
lea ecx, [esp + 0x218]
push ecx
call fcn.10079c30
add esp, 0x14
mov eax, dword [edi + esi*4]
lea edx, [esp + 0x348]
push edx
push eax
call fcn.10073db0
add esp, 8
test ax, ax
je 0x1007f8e4
mov edx, dword [edi + esi*4]
lea ecx, [esp + 0x348]
push ecx
push edx
call fcn.10078760
add esp, 8
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xcc]
push ecx
push edx
mov edx, dword [edi + esi*4]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x358]
push ecx
push edx
call fcn.10079b30
mov eax, dword [esp + 0x24]
mov edx, dword [edi + esi*4]
push eax
push eax
lea eax, [esp + 0x228]
push eax
lea ecx, [esp + 0x36c]
push ecx
push edx
call fcn.1007d2b0
movzx ebx, ax
add esp, 0x2c
test bx, bx
jne 0x10080246
mov eax, dword [edi + esi*4]
movzx ecx, word [eax]
mov eax, dword [edi + esi*4 + 4]
mov edx, dword [esp + 0x58]
inc esi
mov dword [esp + 0x10], ecx
test eax, eax
jne 0x1007f880
test edi, edi
je 0x1007fa4f
mov eax, dword [edi + esi*4]
test eax, eax
je 0x1007fa4f
jmp 0x1007f974
mov edx, dword [esp + 0x58]
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007fa4f
jb 0x1007f991
movzx ecx, word [eax + 2]
cmp cx, word [esp + 0x5a]
jae 0x1007fa4f
mov dx, word [esp + 0x10]
cmp dx, word [eax]
je 0x1007f9bf
mov ecx, dword [esp + 0xc]
push ecx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [eax + 2]
lea ecx, [esp + 0x40]
push ecx
push edx
lea eax, [esp + 0x218]
push eax
call fcn.10079c30
add esp, 0x14
mov edx, dword [edi + esi*4]
lea ecx, [esp + 0x348]
push ecx
push edx
call fcn.10073db0
add esp, 8
test ax, ax
je 0x1007f9ec
mov ecx, dword [edi + esi*4]
lea eax, [esp + 0x348]
push eax
push ecx
call fcn.10078760
add esp, 8
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xcc]
push eax
push ecx
mov ecx, dword [edi + esi*4]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x358]
push eax
push ecx
call fcn.10079b30
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + esi*4]
push eax
push eax
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x36c]
push eax
push ecx
call fcn.1007d2b0
mov edx, dword [edi + esi*4]
movzx ebx, ax
movzx eax, word [edx]
inc esi
mov dword [esp + 0x3c], eax
mov eax, dword [edi + esi*4]
add esp, 0x2c
test eax, eax
jne 0x1007f970
push 0
push 0x1709
lea ecx, [esp + 0x48]
push str.._rddfile.c
push ecx
call fcn.10004aa0
add esp, 0x10
test eax, eax
jle 0x1007fa80
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x34c]
push eax
call fcn.10003cb0
jmp 0x1007faac
lea ecx, [esp + 0x348]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.10073db0
add esp, 8
test ax, ax
je 0x1007faaf
lea eax, [esp + 0x348]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.10078760
add esp, 8
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
test eax, eax
je 0x1007faf1
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1007faf1
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007faf1
jb 0x1007fadd
movzx eax, word [eax + 2]
mov ecx, dword [esp + 0x5a]
cmp ax, cx
jae 0x1007faf1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [ecx + eax*4]
test eax, eax
jne 0x1007fac6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1007fb2f
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1007fb2f
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007fb2f
jb 0x1007fb1b
movzx eax, word [eax + 2]
mov ecx, dword [esp + 0x5a]
cmp ax, cx
jae 0x1007fb2f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [ecx + eax*4]
test eax, eax
jne 0x1007fb04
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
test eax, eax
je 0x1007fbe4
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1007fbe4
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007fbe4
jb 0x1007fbe4
movzx eax, word [eax + 2]
mov ecx, dword [esp + 0x5a]
cmp ax, cx
ja 0x1007fbe4
jb 0x1007fbe4
mov eax, dword [esp + 0x5c]
cmp eax, 0xffffffff
jne 0x1007fb9e
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xcc]
push eax
call fcn.1007add0
movzx eax, ax
add esp, 8
test ax, ax
je 0x1007fbdd
jmp 0x1008008c
test eax, eax
js 0x100801fa
push 1
lea ecx, [esp + 0xcc]
push 0
push ecx
call fcn.1000c5c0
mov edx, eax
mov eax, dword [esp + 0x68]
add edx, eax
add esp, 0xc
test edx, edx
js 0x100801fa
push 1
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.1000c5c0
add esp, 0xc
xor ebx, ebx
jmp 0x10080098
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1007fda0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1007fda0
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007fda0
jb 0x1007fda0
movzx ecx, word [eax + 2]
mov edx, dword [esp + 0x5a]
cmp cx, dx
ja 0x1007fd9c
jb 0x1007fd9c
mov dx, word [esp + 0x10]
cmp dx, word [eax]
je 0x1007fc56
mov ecx, dword [esp + 0xc]
push ecx
lea edx, [esp + 0x2c]
push edx
movzx edx, word [eax + 2]
lea ecx, [esp + 0x40]
push ecx
push edx
lea eax, [esp + 0x218]
push eax
call fcn.10079c30
add esp, 0x14
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xcc]
push edx
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [eax + ebx*4]
lea edx, [esp + 0x358]
push edx
push ecx
call fcn.10079b30
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
push eax
push eax
lea edx, [esp + 0x228]
push edx
mov edx, dword [ecx + ebx*4]
lea eax, [esp + 0x36c]
push eax
push edx
call fcn.1007d2b0
movzx ebx, ax
add esp, 0x2c
test bx, bx
jne 0x1007fd85
mov eax, 0x7fe0
cmp word [esp + 0x58], ax
jne 0x1007fcd0
cmp word [esp + 0x5a], 0x10
je 0x10080246
mov eax, dword [esp + 0x5c]
cmp eax, 0xffffffff
jne 0x1007fd14
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xcc]
push edx
call fcn.1007add0
movzx eax, ax
add esp, 8
test ax, ax
je 0x1007fd83
mov ecx, dword [esp + 0x14]
movzx ebx, ax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + ecx*4]
movzx eax, word [edx]
mov dword [esp + 0x10], eax
jmp 0x1008008f
test eax, eax
jns 0x1007fd34
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
movzx eax, word [edx]
mov ebx, 2
mov dword [esp + 0x10], eax
jmp 0x1008008f
push 1
lea eax, [esp + 0xcc]
push 0
push eax
call fcn.1000c5c0
mov ecx, eax
mov eax, dword [esp + 0x68]
add ecx, eax
add esp, 0xc
test ecx, ecx
jns 0x1007fd70
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
movzx eax, word [edx]
mov ebx, 2
mov dword [esp + 0x10], eax
jmp 0x1008008f
push 1
push eax
lea edx, [esp + 0xd0]
push edx
call fcn.1000c5c0
add esp, 0xc
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
movzx eax, word [edx]
mov dword [esp + 0x10], eax
jmp 0x1008008f
mov edx, dword [esp + 0x58]
test edi, edi
je 0x1007ffad
mov eax, dword [edi + esi*4]
test eax, eax
je 0x1007ffad
movzx ecx, word [eax]
cmp cx, dx
ja 0x1007ffad
jb 0x1007ffad
movzx ecx, word [eax + 2]
cmp cx, word [esp + 0x5a]
ja 0x1007ffad
jb 0x1007ffad
cmp dword [ebp + 0x20], 0
je 0x1007fded
mov dword [esp + 0x30], 1
jmp 0x1007ff04
mov cx, word [esp + 0x10]
cmp cx, word [eax]
je 0x1007fe1b
mov edx, dword [esp + 0xc]
movzx eax, word [eax + 2]
push edx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x40]
push edx
push eax
lea ecx, [esp + 0x218]
push ecx
call fcn.10079c30
add esp, 0x14
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xcc]
push eax
push ecx
mov ecx, dword [edi + esi*4]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x358]
push eax
push ecx
call fcn.10079b30
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + esi*4]
push eax
push eax
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x36c]
push eax
push ecx
call fcn.1007d2b0
mov edx, dword [esp + 0x84]
movzx ebx, ax
add esp, 0x2c
test bx, bx
jne 0x1007ff04
mov eax, 0x7fe0
cmp dx, ax
jne 0x1007fe8e
cmp word [esp + 0x5a], 0x10
je 0x10080246
mov eax, dword [esp + 0x5c]
cmp eax, 0xffffffff
jne 0x1007feb9
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xcc]
push edx
call fcn.1007add0
movzx eax, ax
add esp, 8
test ax, ax
je 0x1007fefe
movzx ebx, ax
jmp 0x1007ff00
test eax, eax
jns 0x1007fec4
mov ebx, 2
jmp 0x1007ff04
push 1
lea eax, [esp + 0xcc]
push 0
push eax
call fcn.1000c5c0
mov ecx, eax
mov eax, dword [esp + 0x68]
add ecx, eax
add esp, 0xc
test ecx, ecx
jns 0x1007feeb
mov ebx, 2
jmp 0x1007ff00
push 1
push eax
lea edx, [esp + 0xd0]
push edx
call fcn.1000c5c0
add esp, 0xc
xor ebx, ebx
mov edx, dword [esp + 0x58]
mov eax, dword [edi + esi*4]
movzx ecx, word [eax]
inc esi
cmp dword [esp + 0x30], 0
mov dword [esp + 0x10], ecx
je 0x1008008f
cmp word [esp + 0x10], dx
je 0x1007ff45
mov eax, dword [esp + 0xc]
push eax
mov eax, dword [esp + 0x5e]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x40]
push edx
push eax
lea ecx, [esp + 0x218]
push ecx
call fcn.10079c30
add esp, 0x14
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xcc]
push eax
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x358]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.10079b30
mov edx, dword [esp + 0x24]
add esp, 0x18
cmp dword [esp + 0x5c], 0xffffffff
push edx
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x210]
push ecx
lea edx, [esp + 0xd4]
push edx
lea eax, [esp + 0x358]
lea ecx, [esp + 0x68]
push eax
push ecx
je 0x1008007b
call fcn.1007b490
jmp 0x10080080
cmp dx, 2
jne 0x1007ff1a
cmp word [esp + 0x5a], 0x10
jne 0x1008000c
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x354]
push eax
lea ecx, [esp + 0xd0]
push ecx
call fcn.1000b880
mov ecx, dword [esp + 0x68]
add esp, 0xc
cmp eax, ecx
jne 0x10080241
mov edx, dword [esp + 0xc]
push edx
lea eax, [esp + 0x354]
push eax
mov byte [esp + ecx + 0x358], 0
call fcn.100784b0
add esp, 8
xor ebx, ebx
jmp 0x10080098
mov eax, dword [esp + 0x5c]
cmp eax, 0xffffffff
jne 0x10080038
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xcc]
push edx
call fcn.1007add0
movzx eax, ax
add esp, 8
test ax, ax
je 0x1007fbdd
jmp 0x1008008c
test eax, eax
js 0x100801fa
push 1
lea eax, [esp + 0xcc]
push 0
push eax
call fcn.1000c5c0
mov ecx, eax
mov eax, dword [esp + 0x68]
add ecx, eax
add esp, 0xc
test ecx, ecx
js 0x100801fa
push 1
push eax
lea edx, [esp + 0xd0]
push edx
call fcn.1000c5c0
add esp, 0xc
xor ebx, ebx
jmp 0x10080098
call fcn.1007af50
movzx edx, word [esp + 0x70]
add esp, 0x18
mov dword [esp + 0x10], edx
movzx ebx, ax
test bx, bx
jne 0x10080246
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.10079e30
add esp, 0x14
test eax, eax
jge 0x1007f763
mov eax, dword [esp + 0x2c]
cmp eax, 1
je 0x100800dc
mov edx, dword [esp + 0x3c]
cmp dword [edx + eax*4 + 4], 0
jne 0x100801d6
test edi, edi
je 0x100801d6
mov eax, dword [edi + esi*4]
test eax, eax
je 0x100801d6
mov edx, dword [esp + 0x58]
movzx ecx, word [eax]
cmp cx, dx
ja 0x10080110
jb 0x100801c9
movzx ecx, word [eax + 2]
cmp cx, word [esp + 0x5a]
jbe 0x100801c9
mov cx, word [esp + 0x10]
cmp cx, word [eax]
je 0x1008013e
mov edx, dword [esp + 0xc]
movzx eax, word [eax + 2]
push edx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x40]
push edx
push eax
lea ecx, [esp + 0x218]
push ecx
call fcn.10079c30
add esp, 0x14
mov eax, dword [edi + esi*4]
lea edx, [esp + 0x348]
push edx
push eax
call fcn.10073db0
add esp, 8
test ax, ax
je 0x1008016b
mov edx, dword [edi + esi*4]
lea ecx, [esp + 0x348]
push ecx
push edx
call fcn.10078760
add esp, 8
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xcc]
push ecx
push edx
mov edx, dword [edi + esi*4]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x358]
push ecx
push edx
call fcn.10079b30
mov eax, dword [esp + 0x24]
mov edx, dword [edi + esi*4]
push eax
push eax
lea eax, [esp + 0x228]
push eax
lea ecx, [esp + 0x36c]
push ecx
push edx
call fcn.1007d2b0
mov edx, dword [esp + 0x84]
movzx ebx, ax
mov eax, dword [edi + esi*4]
movzx ecx, word [eax]
add esp, 0x2c
mov dword [esp + 0x10], ecx
mov eax, dword [edi + esi*4 + 4]
inc esi
test eax, eax
jne 0x100800f3
lea edx, [esp + 0xc8]
push edx
call fcn.1000ac00
mov eax, dword [esp + 0x30]
inc eax
add esp, 4
cmp eax, 2
mov dword [esp + 0x2c], eax
jl 0x1007f510
jmp 0x10080246
mov ebx, 2
jmp 0x10080246
push 0x1666
push str.._rddfile.c
mov ebx, 0xc9
push ebx
push 0x40003
call fcn.10002e30
add esp, 0x10
jmp 0x10080246
push 0x169f
push str.._rddfile.c
push ebx
push 0x40003
call fcn.10002e30
add esp, 0x10
jmp 0x10080246
push 0x16aa
jmp 0x10080225
mov ebx, 0xca
mov eax, dword [esp + 0x44]
push eax
call fcn.10009d90
lea ecx, [esp + 0xcc]
push ecx
call fcn.1000ac00
lea edx, [esp + 0x210]
push edx
call fcn.1000ac00
add esp, 0xc
mov ax, bx
mov ecx, dword [esp + 0x3d4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1002aab0
mov esp, ebp
pop ebp
ret