Function at 0x10058e17
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x42e4
call fcn.10037cc0
mov eax, dword [0x100ae134]
xor eax, esp
mov dword [esp + 0x42e0], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov dword [esp + 0x54], ecx
mov esi, edx
mov ecx, dword [ebp + 0x18]
mov edx, ecx
mov dword [esp + 0x68], ecx
movzx ecx, si
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x64], ecx
movzx ecx, di
mov dword [esp + 0x2c], esi
mov dword [esp + 0x84], ecx
mov ecx, esi
mov esi, edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x1c]
and esi, 0xbfff
mov dword [esp + 0x18], edi
and ecx, 0xbfff
mov edi, dword [ebp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0xc], eax
movzx esi, si
mov dword [esp + 0x50], 8
cmp edi, 3
je 0x10059bb6
cmp edi, 8
je 0x10059bb6
cmp edi, 0xd
je 0x10059bb6
mov dword [esp + 0x34], 0x90
cmp cx, word [esp + 0x34]
jne 0x10058ef0
test ebx, ebx
jne 0x10058ef0
mov dword [eax], 2
mov eax, 0x80040e1d
jmp 0x10059bfb
and dword [esp + 0x24], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x68], 0xc
mov dword [esp + 0x48], 6
mov dword [esp + 0x44], 0xe
mov dword [esp + 0x40], 0x82
mov dword [esp + 0x4c], 0x81
mov dword [esp + 0x5c], 0x10
mov dword [esp + 0x54], 7
cmp si, word [esp + 0x34]
je 0x10058fbb
cmp cx, word [esp + 0x68]
jne 0x1005904f
cmp si, word [esp + 0x48]
je 0x10059039
mov ecx, dword [esp + 0x44]
cmp si, cx
je 0x10059039
cmp si, word [esp + 0x40]
je 0x10059039
cmp si, word [esp + 0x4c]
je 0x10059039
cmp si, word [esp + 0x50]
je 0x10059039
cmp si, word [esp + 0x5c]
jne 0x10058f99
mov ecx, 0x87
xor eax, eax
cmp word [ebx], cx
sete al
jmp 0x100590f2
cmp si, word [esp + 0x54]
jne 0x100590fa
movzx eax, word [ebx]
cmp ax, word [esp + 0x48]
je 0x10058fb7
cmp ax, cx
jne 0x100590fa
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
jne 0x10058fe5
lea ecx, [esp + 0xac]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
test eax, eax
jne 0x10058ff4
lea eax, [esp + 0xb0]
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x18]
mov esi, ecx
mov dword [eax], ecx
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x3c], eax
cmp di, word [esp + 0x44]
jbe 0x1005920f
mov ecx, edi
call fcn.1005adce
mov esi, eax
test esi, esi
js 0x10059a43
test edi, 0xb000
je 0x10059186
mov ebx, dword [esp + 0x14]
mov esi, 0x80040e1d
jmp 0x10059a5b
mov ecx, dword [esp + 0x54]
cmp word [ebx], cx
je 0x10058fbb
mov eax, dword [esp + 0x24]
jmp 0x100590f2
cmp cx, word [esp + 0x34]
jne 0x1005908a
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x28]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], eax
call fcn.1005a3b6
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
movzx ecx, ax
mov eax, ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + 0xc], eax
movzx eax, cx
mov ecx, 0x62c
imul eax, eax, 0x91
add eax, esi
cmp eax, ecx
ja 0x100590cc
je 0x100590ee
cmp eax, 0x36d
je 0x100590ee
cmp eax, 0x3fd
je 0x100590ee
cmp eax, 0x3ff
je 0x100590ee
cmp eax, 0x405
je 0x100590ee
cmp eax, 0x477
jbe 0x100590fa
cmp eax, 0x479
jbe 0x100590ee
jmp 0x100590fa
sub eax, 0x7f5
je 0x100590ee
sub eax, 0x3fc
je 0x100590ee
sub eax, 0x185b
je 0x100590ee
sub eax, 0x282d
je 0x100590ee
sub eax, dword [esp + 0x44]
jne 0x100590fa
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x10058fb7
push dword [ebp + 0x30]
mov eax, dword [0x100af334]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
mov esi, dword [eax]
push dword [esp + 0x18]
push edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + 0xc]
push edi
push edx
push ebx
mov ebx, dword [esp + 0x30]
push ebx
push dword [ebp + 0xc]
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
call dword [0x100b05a4]
call dword [esi + 0xc]
mov esi, eax
cmp esi, 0x80040e1d
jne 0x1005915b
mov eax, dword [esp + 0x34]
cmp word [esp + 0x64], ax
je 0x1005914f
cmp word [esp + 0x18], ax
jne 0x1005915b
mov eax, dword [esp + 0xc]
mov dword [eax], 2
jmp 0x1005915f
mov eax, dword [esp + 0xc]
cmp dword [ebp + 0x34], 0
je 0x1005917f
mov ecx, dword [esp + 0x24]
cmp dword [eax], ecx
jne 0x1005917f
push dword [ebp + 0x34]
mov edx, dword [esp + 0x18]
push eax
push edi
push ebx
call fcn.10059e50
add esp, 0x10
mov eax, esi
jmp 0x10059bfb
test edi, 0x4000
je 0x10059205
mov eax, dword [esp + 0x7c]
movzx edi, ax
movzx eax, di
mov dword [esp + 0x18], edi
cmp eax, 0x80
jb 0x1005902b
cmp eax, dword [esp + 0x40]
jbe 0x100591c0
mov ecx, 0x8b
cmp eax, ecx
je 0x100591d3
cmp eax, dword [esp + 0x34]
jne 0x1005902b
xor eax, eax
cmp dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x24]
setne al
mov dword [esp + 0x30], eax
jmp 0x10059211
test edx, edx
je 0x100591ea
lea eax, [esp + 0x2e8]
mov dword [esp + 0x1c], 0x2b
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
neg eax
sbb eax, eax
and eax, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
xor eax, eax
cmp dword [esp + 0x70], eax
jmp 0x100591c6
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
jmp 0x10059211
mov eax, ecx
test byte [esp + 0x3c], 1
je 0x100593d8
mov edx, 0x8b
cmp di, dx
mov edi, dword [esp + 0x14]
je 0x100593dc
mov dword [esp + 0x28], edi
test edi, edi
je 0x100593e4
test eax, eax
jne 0x100593dc
mov edx, dword [esp + 0x18]
movzx eax, dx
cmp eax, 0x80
jb 0x10059262
cmp eax, 0x82
jbe 0x1005927a
cmp dx, word [esp + 0x34]
je 0x100593dc
lea edi, [esp + 0xb4]
mov dword [esp + 0x1c], 0x2b
mov dword [esp + 0x14], edi
jmp 0x100593dc
mov eax, dword [esp + 0x1c]
cmp eax, 0x4000
ja 0x100593a9
lea edi, [esp + 0x2e8]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x2c]
test ebx, ebx
je 0x10059b29
mov ecx, dword [esp + 0x18]
push 8
pop eax
cmp dx, ax
jne 0x100592c8
mov eax, dword [esp + 0x24]
cmp dword [ebx], eax
jne 0x100592ed
mov edx, dword [esp + 0x40]
mov ebx, 0x10004488
mov dword [esp + 0x2c], edx
mov dword [ebp + 0xc], eax
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x34]
cmp dx, ax
jne 0x100592ed
cmp ax, cx
je 0x100592ed
lea edx, [ebp + 0xc]
lea ecx, [esp + 0x38]
call fcn.1005a3b6
mov ebx, dword [esp + 0x38]
movzx edx, ax
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x18]
movzx eax, dx
imul eax, eax, 0x91
movzx ecx, di
mov edi, dword [esp + 0x14]
add eax, ecx
mov ecx, 0x75c
cmp eax, ecx
ja 0x100595b7
je 0x100598c7
mov ecx, 0x405
cmp eax, ecx
ja 0x100594cf
je 0x10059704
mov ecx, 0x365
cmp eax, ecx
ja 0x1005946e
je 0x10059358
cmp eax, 0x121
je 0x10059358
cmp eax, 0x1b2
je 0x10059358
cmp eax, 0x243
je 0x10059358
cmp eax, 0x2d4
jne 0x10059686
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x10]
push 0x28
pop edx
mov dword [eax], edx
je 0x1005938e
mov eax, dword [0x100af314]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x100b05a4]
call esi
mov dword [edi], eax
test eax, eax
je 0x10059983
mov edi, eax
mov dword [esp + 0x14], edi
push dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
push dword [ebp + 0xc]
push dword [esp + 0x34]
push edi
push ebx
call fcn.1005793f
jmp 0x100596e2
push eax
push ecx
push dword [0x100af320]
call dword [sym.imp.MSDART.DLL_MpHeapAlloc]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x14], edi
test edi, edi
jne 0x100593ce
mov eax, 0x8007000e
jmp 0x10059bfb
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], eax
jmp 0x100593dc
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10059294
mov edx, dword [esp + 0x2c]
push 8
movzx eax, dx
pop ecx
cmp eax, ecx
je 0x10059415
cmp eax, 0x7f
jbe 0x100593fd
cmp eax, dword [esp + 0x40]
jbe 0x10059415
lea edi, [esp + 0xb4]
mov dword [esp + 0x1c], 0x2b
mov dword [esp + 0x14], edi
jmp 0x10059298
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
push eax
push eax
push ebx
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xc]
push ebx
push eax
push dword [esp + 0x2c]
call fcn.1005a9a3
mov esi, eax
mov eax, dword [esp + 0x18]
movzx eax, ax
sub eax, dword [esp + 0x4c]
je 0x1005945f
sub eax, 1
jne 0x10059a3b
mov eax, dword [ebx]
cmp eax, 2
jb 0x10059a3b
add eax, 0xfffffffe
mov dword [ebx], eax
jmp 0x10059a3b
mov eax, dword [ebx]
cmp eax, dword [esp + 0x20]
jb 0x10059a3b
dec eax
jmp 0x10059458
sub eax, 0x36d
je 0x100596ed
sub eax, 0x89
je 0x10059358
sub eax, dword [esp + 0x54]
je 0x100596cb
dec eax
sub eax, 1
jne 0x10059686
test byte [esp + 0x3c], 0x20
fld qword [ebx]
je 0x10059816
push ecx
push ecx
lea ecx, [esp + 0x90]
fstp qword [esp]
call fcn.1005bed4
pop ecx
pop ecx
test eax, eax
jne 0x1005971e
mov eax, dword [esp + 0xc]
mov dword [eax], 2
jmp 0x100598be
mov ecx, 0x6d2
cmp eax, ecx
ja 0x1005950c
je 0x10059534
cmp eax, 0x478
jb 0x10059686
cmp eax, 0x479
jbe 0x10059498
cmp eax, 0x487
je 0x10059358
cmp eax, 0x518
je 0x10059358
cmp eax, 0x6cb
jmp 0x10059352
cmp eax, 0x6d4
je 0x10059534
cmp eax, 0x6da
je 0x10059534
mov ecx, dword [esp + 0x20]
cmp eax, 0x6dc
je 0x10059538
add eax, 0xfffff8b3
cmp eax, ecx
ja 0x10059686
jmp 0x10059538
mov ecx, dword [esp + 0x20]
movzx edx, word [ebx]
mov eax, 0x2011
mov dword [esp + 0x2c], edx
cmp dx, ax
jne 0x1005957c
mov eax, dword [esp + 0x18]
cmp ax, word [esp + 0x40]
je 0x10059563
cmp ax, word [esp + 0x4c]
je 0x10059563
push 8
pop ecx
cmp ax, cx
jne 0x10059588
push dword [ebx + 8]
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElemsize]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
je 0x1005985d
mov edx, dword [esp + 0x2c]
cmp dx, cx
je 0x100598b4
push 8
pop ecx
movzx eax, dx
and eax, 0xffff0fff
cmp eax, 0xc
je 0x1005902b
test edx, 0xb000
jne 0x1005902b
cmp dx, word [esp + 0x44]
je 0x10059298
add ebx, ecx
jmp 0x100596c2
mov ecx, 0x49a1
cmp eax, ecx
ja 0x1005962b
je 0x10059358
mov ecx, 0xac2
cmp eax, ecx
ja 0x10059600
je 0x10059358
cmp eax, 0x7f5
je 0x100598e5
cmp eax, 0x87e
je 0x10059358
cmp eax, 0x9a0
je 0x10059358
cmp eax, 0xa31
jmp 0x10059352
cmp eax, 0xb53
je 0x10059358
cmp eax, 0xbe4
je 0x10059358
cmp eax, 0x2958
je 0x10059358
cmp eax, 0x4910
jmp 0x10059352
mov ecx, 0x4c79
cmp eax, ecx
ja 0x10059665
je 0x100598fb
cmp eax, 0x4a32
je 0x10059358
cmp eax, 0x4ac3
je 0x10059358
cmp eax, 0x4be5
je 0x10059358
cmp eax, 0x4c76
jmp 0x10059352
cmp eax, 0x4c87
je 0x100599da
cmp eax, 0x4d07
je 0x10059358
cmp eax, 0x5220
je 0x10059957
cmp dx, word [esp + 0x44]
jbe 0x1005902b
mov ecx, edx
call fcn.1005adce
mov esi, eax
test esi, esi
js 0x10059a43
test edx, 0x4000
je 0x1005902b
and edx, 0xbfff
mov dword [esp + 0x2c], edx
test ebx, ebx
je 0x10059b29
mov ebx, dword [ebx]
mov dword [esp + 0x38], ebx
jmp 0x10059298
mov eax, dword [esp + 0x10]
push 8
pop ecx
push edi
push ecx
mov dword [eax], ecx
fld qword [ebx]
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_VarCyFromDate]
mov esi, eax
mov ebx, dword [esp + 0x10]
jmp 0x10059a3b
mov eax, dword [esp + 0x10]
push 8
pop ecx
push edi
mov dword [eax], ecx
push dword [ebx + 4]
push dword [ebx]
call dword [sym.imp.OLEAUT32.dll_VarDateFromStr]
jmp 0x100596e2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
push edi
push ecx
mov dword [eax], ecx
fld qword [ebx]
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_VarDecFromDate]
jmp 0x100596e2
push dword [esp + 0x88]
mov eax, dword [esp + 0x50]
push dword [esp + 0x90]
cmp word [esp + 0x20], ax
lea eax, [esp + 0xe8]
push dword [esp + 0x98]
push dword [esp + 0xa0]
push dword [esp + 0xa8]
push dword [esp + 0xb0]
jne 0x100597b2
push 0x1001485c
push 0x104
push eax
call fcn.1005bd73
mov esi, eax
add esp, 0x24
test esi, esi
js 0x10059a43
lea ecx, [esp + 0xe0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059781
push dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
sub ecx, edx
push dword [esp + 0x10]
mov edx, edi
push dword [esp + 0x24]
push ebx
push ecx
lea ecx, [esp + 0xf4]
call fcn.10057fca
add esp, 0x14
jmp 0x10059a39
push 0x10014880
push 0x104
push eax
call fcn.10041c14
mov esi, eax
add esp, 0x24
test esi, esi
js 0x10059a43
mov ebx, dword [esp + 0x24]
lea edx, [esp + 0xe0]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, bx
jne 0x100597dd
push dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
sub edx, ecx
push dword [esp + 0x10]
sar edx, 1
lea ecx, [esp + 0xe8]
push dword [esp + 0x24]
push ebx
push edi
push dword [esp + 0x2c]
call fcn.1005a79a
add esp, 0x18
jmp 0x10059a39
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x28]
push 0x409
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_VarBstrFromDisp]
mov esi, eax
test esi, esi
js 0x10059a43
push dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
push ebx
push edi
call fcn.1005a54a
jmp 0x100597aa
mov edi, dword [ebx + 8]
push edi
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
mov ebx, dword [esp + 0x14]
mov esi, eax
test esi, esi
js 0x10059a47
push dword [esp + 0x30]
mov edx, dword [edi + 0x10]
push dword [esp + 0x10]
mov eax, dword [esp + 0x18]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
push ebx
mov dword [ebp + 0xc], edx
push dword [edi + 0xc]
push eax
call fcn.10059d99
add esp, 0x18
mov esi, eax
push edi
call dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
test esi, esi
js 0x10059a47
mov edi, ebx
jmp 0x100596e4
mov eax, dword [esp + 0xc]
mov dword [eax], 3
mov ebx, dword [esp + 0x10]
jmp 0x10059a3f
push dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
push edi
push ebx
mov dword [eax], 0x28
call fcn.10058668
jmp 0x100596e2
mov eax, dword [esp + 0x10]
push 8
pop ecx
push edi
push ebx
mov dword [eax], ecx
call dword [sym.imp.OLEAUT32.dll_VarCyFromI1]
jmp 0x100596e2
lea eax, [esp + 0x70]
xor edx, edx
push eax
mov eax, dword [ebx + 0xc]
mov ecx, 0xf4240
div ecx
mov dx, word [ebx + 2]
mov cx, word [ebx]
push eax
movzx eax, word [ebx + 0xa]
push eax
movzx eax, word [ebx + 8]
push eax
movzx eax, word [ebx + 6]
push eax
movzx eax, word [ebx + 4]
push eax
call fcn.1005b463
mov ebx, dword [esp + 0x28]
add esp, 0x18
test eax, eax
je 0x10059a17
fld qword [esp + 0x70]
push edi
push ecx
push ecx
fstp qword [esp]
mov dword [ebx], 2
call dword [sym.imp.OLEAUT32.dll_VarI2FromCy]
jmp 0x10059a39
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x10]
push 0x28
pop edx
mov dword [eax], edx
je 0x10059993
mov eax, dword [0x100af314]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x100b05a4]
call esi
mov dword [edi], eax
test eax, eax
jne 0x1005998d
mov esi, 0x8007000e
jmp 0x10059b2e
mov edi, eax
mov dword [esp + 0x14], edi
xor eax, eax
push 0xa
pop ecx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x14]
mov word [edi], ax
mov eax, dword [esp + 0x24]
cmp word [ebx], ax
mov eax, dword [esp + 0xc]
jne 0x100599b4
mov dword [eax], 2
push eax
mov edx, ebx
mov ecx, edi
call fcn.1005bc52
mov esi, eax
mov eax, dword [esp + 0x24]
cmp word [ebx], ax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
pop ecx
jne 0x10059a3f
mov dword [eax], 3
jmp 0x10059a3f
lea eax, [esp + 0x70]
xor edx, edx
push eax
mov eax, dword [ebx + 0xc]
mov ecx, 0xf4240
div ecx
mov dx, word [ebx + 2]
mov cx, word [ebx]
push eax
movzx eax, word [ebx + 0xa]
push eax
movzx eax, word [ebx + 8]
push eax
movzx eax, word [ebx + 6]
push eax
movzx eax, word [ebx + 4]
push eax
call fcn.1005b463
mov ebx, dword [esp + 0x28]
add esp, 0x18
test eax, eax
jne 0x10059a23
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov dword [eax], ecx
jmp 0x10059a3f
mov eax, dword [esp + 0x20]
fld qword [esp + 0x70]
push edi
push ecx
push ecx
fstp qword [esp]
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VarI1FromDate]
mov esi, eax
mov eax, dword [esp + 0xc]
test esi, esi
jns 0x10059aa1
mov ebx, dword [esp + 0x14]
cmp esi, 0x8002000a
je 0x10059a93
cmp esi, 0x80040e1d
jne 0x10059b32
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
cmp ax, dx
je 0x10059a82
mov ecx, dword [esp + 0x34]
cmp ax, cx
je 0x10059a82
mov eax, dword [esp + 0x84]
cmp ax, dx
je 0x10059a82
cmp ax, cx
jne 0x10059a8a
mov dword [esp + 0x20], 2
mov eax, dword [esp + 0x20]
jmp 0x10059b35
mov eax, dword [esp + 0x48]
mov esi, 0x80040e57
jmp 0x10059b35
cmp dword [ebp + 0x34], 0
je 0x10059ac2
mov ecx, dword [esp + 0x24]
cmp dword [eax], ecx
jne 0x10059ac2
push dword [ebp + 0x34]
mov edx, edi
push eax
push dword [esp + 0x24]
push ebx
call fcn.10059e50
add esp, 0x10
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
test byte [esp + 0x3c], 9
je 0x10059b64
cmp esi, 0x80040e1d
je 0x10059b64
mov eax, dword [edi]
cmp eax, 4
jne 0x10059aed
push 2
pop eax
mov dword [edi], eax
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x10059b64
test eax, eax
jne 0x10059b64
mov eax, dword [esp + 0x18]
push 8
movzx eax, ax
pop edx
sub eax, edx
je 0x10059bb1
sub eax, 0x78
je 0x10059b9d
sub eax, 1
je 0x10059b3d
sub eax, 1
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
jne 0x10059b52
add eax, 2
jmp 0x10059b44
mov esi, 0x80004005
mov ebx, dword [esp + 0x14]
push 2
pop eax
mov edi, dword [esp + 0xc]
mov dword [edi], eax
jmp 0x10059aca
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
inc eax
mov ecx, dword [esp + 0x28]
cmp eax, dword [esp + 0x1c]
jb 0x10059b52
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x30], 0
jne 0x10059b64
push eax
push ebx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x50], 0
je 0x10059b73
push ebx
call dword [sym.imp.MSDART.DLL_mpFree]
pop ecx
test esi, esi
js 0x1005917f
cmp dword [edi], 0
je 0x1005917f
cmp dword [edi], 4
je 0x1005917f
cmp dword [edi], 3
je 0x1005917f
mov eax, 0x80040e21
jmp 0x10059bfb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
cmp dword [eax], ecx
mov ecx, dword [esp + 0x28]
jae 0x10059b4e
mov eax, dword [eax]
jmp 0x10059b52
push 4
pop eax
jmp 0x10059b52
test eax, eax
je 0x10059bbc
mov dword [eax], edi
mov eax, dword [esp + 0x10]
xor ecx, ecx
test eax, eax
je 0x10059bc8
mov dword [eax], ecx
cmp edi, 3
jne 0x10059bed
cmp word [esp + 0x18], 0xc
jne 0x10059bf9
test edx, edx
je 0x10059bf9
cmp dword [esp + 0x1c], 2
jae 0x10059be7
mov eax, 0x80040e57
jmp 0x10059bfb
xor eax, eax
inc eax
mov word [edx], ax
push 8
pop eax
cmp edi, eax
jne 0x10059bf9
mov ecx, 0x80040e21
mov eax, ecx
mov ecx, dword [esp + 0x42ec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100365c0
mov esp, ebp
pop ebp
ret 0x30