Function at 0x40117c
Capabilities:
Enumerate pe sections

Disassembly:
jmp 0x4034fa
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
push edi
call fcn.00404bf2
pop ecx
test eax, eax
jne 0x403db2
mov ebx, dword [esp + 0x28]
cmp ebx, 5
ja 0x403db2
mov esi, dword [edi + 0x1c]
xor ecx, ecx
cmp dword [edi + 0xc], ecx
je 0x403daa
cmp dword [edi + 4], ecx
je 0x40353c
cmp dword [edi], ecx
je 0x403daa
cmp dword [esi + 4], 0x29a
jne 0x40354e
cmp ebx, 4
jne 0x403daa
cmp dword [edi + 0x10], ecx
je 0x4035b0
mov edx, dword [esi + 0x28]
push 9
mov dword [esi + 0x28], ebx
pop ebp
cmp dword [esi + 0x14], ecx
je 0x403575
push edi
call fcn.00405386
pop ecx
xor ecx, ecx
cmp dword [edi + 0x10], ecx
je 0x403da2
jmp 0x40359e
cmp dword [edi + 4], ecx
jne 0x40359e
xor eax, eax
cmp edx, 4
cmovg eax, ebp
add edx, edx
sub edx, eax
xor ecx, ecx
cmp ebx, 4
lea eax, [ebx + ebx]
cmovg ecx, ebp
sub eax, ecx
cmp eax, edx
jg 0x40359c
cmp ebx, 4
jne 0x4035b0
xor ecx, ecx
cmp dword [esi + 4], 0x29a
jne 0x4035bf
cmp dword [edi + 4], ecx
je 0x40368a
mov eax, dword [str.buffer_error]
mov dword [edi + 0x18], eax
push 0xfffffffffffffffb
jmp 0x403db4
cmp dword [esi + 4], 0x2a
jne 0x40368a
cmp dword [esi + 0x18], ecx
jne 0x4035da
mov dword [esi + 4], 0x71
jmp 0x40368a
mov edx, dword [esi + 0x30]
shl edx, 0xc
add edx, 0xffff8800
cmp dword [esi + 0x88], 2
jge 0x40361c
mov eax, dword [esi + 0x84]
cmp eax, 2
jl 0x40361c
cmp eax, 6
jge 0x403606
push 0x40
pop eax
push 0x60
jmp 0x403620
jne 0x403612
mov eax, 0x80
lea ecx, [eax + 0x20]
jmp 0x403621
mov eax, 0xc0
lea ecx, [eax + 0x20]
jmp 0x403621
mov eax, ecx
push 0x20
pop ecx
cmp dword [esi + 0x6c], 0
push 0x1f
cmove ecx, eax
or ecx, edx
xor edx, edx
pop ebp
mov eax, ecx
div ebp
push ebp
pop eax
sub ecx, edx
add ecx, eax
push ecx
push esi
call fcn.00405655
cmp dword [esi + 0x6c], 0
pop ecx
pop ecx
je 0x403661
movzx eax, word [edi + 0x32]
push eax
push esi
call fcn.00405655
movzx eax, word [edi + 0x30]
push eax
push esi
call fcn.00405655
add esp, 0x10
push 0
push 0
push 0
call fcn.00401762
mov dword [edi + 0x30], eax
push edi
mov dword [esi + 4], 0x71
call fcn.00405386
xor ecx, ecx
add esp, 0x10
cmp dword [esi + 0x14], ecx
jne 0x403da2
cmp dword [esi + 4], 0x39
jne 0x40389b
push ecx
push ecx
push ecx
call fcn.00401460
mov dword [edi + 0x30], eax
add esp, 0xc
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
push 0x1f
pop edx
mov byte [ecx + eax], dl
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov byte [ecx + eax], 0x8b
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov byte [ecx + eax], 8
mov edx, dword [esi + 0x14]
mov ebp, dword [esi + 0x1c]
inc edx
mov dword [esi + 0x14], edx
test ebp, ebp
jne 0x403774
mov eax, dword [esi + 8]
mov byte [edx + eax], 0
xor edx, edx
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], dl
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], dl
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], dl
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], dl
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x84]
inc edx
mov dword [esi + 0x14], edx
cmp eax, 9
jne 0x40372d
mov cl, 2
jmp 0x403741
cmp dword [esi + 0x88], 2
jge 0x40373f
cmp eax, 2
jl 0x40373f
xor cl, cl
jmp 0x403741
mov cl, 4
mov eax, dword [esi + 8]
push edi
mov byte [edx + eax], cl
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov byte [ecx + eax], 0xa
inc dword [esi + 0x14]
mov dword [esi + 4], 0x71
call fcn.00405386
cmp dword [esi + 0x14], 0
pop ecx
jne 0x403da2
jmp 0x40389b
cmp dword [ebp + 0x24], 0
sete cl
dec cl
and cl, 0x10
cmp dword [ebp + 0x2c], 0
sete al
dec al
and al, 2
add cl, al
cmp dword [ebp + 0x1c], 0
sete al
dec al
and al, 8
add cl, al
cmp dword [ebp + 0x10], 0
sete al
dec al
and al, 4
add cl, al
cmp dword [ebp], 0
setne al
add cl, al
mov eax, dword [esi + 8]
mov byte [edx + eax], cl
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
mov al, byte [eax + 4]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
mov al, byte [eax + 5]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
mov al, byte [eax + 6]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
mov al, byte [eax + 7]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x84]
inc edx
mov dword [esi + 0x14], edx
cmp eax, 9
jne 0x403818
mov cl, 2
jmp 0x40382c
cmp dword [esi + 0x88], 2
jge 0x40382a
cmp eax, 2
jl 0x40382a
xor cl, cl
jmp 0x40382c
mov cl, 4
mov eax, dword [esi + 8]
mov byte [edx + eax], cl
inc dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov al, byte [eax + 0xc]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov dword [esi + 0x14], edx
cmp dword [eax + 0x10], 0
je 0x403875
mov ecx, dword [esi + 8]
mov al, byte [eax + 0x14]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov al, byte [eax + 0x15]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x403890
push edx
push dword [esi + 8]
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
and dword [esi + 0x20], 0
mov dword [esi + 4], 0x45
mov ecx, dword [esi + 4]
lea ebp, [esi + 0x1c]
cmp ecx, 0x45
jne 0x4039b8
mov eax, dword [ebp]
cmp dword [eax + 0x10], 0
je 0x4039af
movzx edx, word [eax + 0x14]
sub edx, dword [esi + 0x20]
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ebx
lea eax, [ebx + edx]
cmp eax, ecx
jbe 0x403962
mov eax, ebx
mov dword [esp + 0x14], ebx
sub ecx, eax
mov eax, dword [ebp]
push ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x10]
add eax, dword [esi + 0x20]
push eax
mov eax, dword [esi + 8]
add eax, dword [esp + 0x1c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp]
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x14], ecx
cmp dword [eax + 0x2c], 0
je 0x403928
cmp ecx, ebx
jbe 0x403928
mov eax, dword [esi + 8]
sub ecx, ebx
push ecx
add eax, ebx
push eax
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x18]
add dword [esi + 0x20], eax
push edi
call fcn.00405386
mov eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
pop ecx
test eax, eax
jne 0x403da2
mov edx, dword [esp + 0x10]
xor ebx, ebx
sub edx, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
cmp edx, ecx
ja 0x4038dd
mov eax, dword [ebp]
push edx
mov eax, dword [eax + 0x10]
add eax, dword [esi + 0x20]
push eax
mov eax, dword [esi + 8]
add eax, dword [esp + 0x24]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ebp]
add ecx, dword [esi + 0x14]
mov dword [esi + 0x14], ecx
cmp dword [eax + 0x2c], 0
je 0x4039ab
cmp ecx, ebx
jbe 0x4039ab
mov eax, dword [esi + 8]
sub ecx, ebx
push ecx
add eax, ebx
push eax
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
and dword [esi + 0x20], 0
mov dword [esi + 4], 0x49
jmp 0x4039c1
cmp ecx, 0x49
jne 0x403a98
mov eax, dword [ebp]
cmp dword [eax + 0x1c], 0
je 0x403a88
mov ecx, dword [esi + 0x14]
lea eax, [esi + 0xc]
mov dword [esp + 0x10], ecx
lea edx, [esi + 8]
mov ebx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
cmp ebx, dword [eax]
jne 0x403a24
mov eax, dword [ebp]
cmp dword [eax + 0x2c], 0
je 0x403a0c
cmp ebx, ecx
jbe 0x403a0c
mov eax, dword [edx]
sub ebx, ecx
push ebx
add eax, ecx
push eax
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
push edi
call fcn.00405386
cmp dword [esi + 0x14], 0
pop ecx
jne 0x403da2
and dword [esp + 0x10], 0
xor ebx, ebx
mov eax, dword [ebp]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + 0x1c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov byte [ebx + eax], dl
mov ebx, dword [esi + 0x14]
inc ebx
mov dword [esi + 0x14], ebx
test dl, dl
je 0x403a57
mov ecx, dword [esp + 0x10]
lea eax, [esi + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x4039e1
mov eax, dword [ebp]
cmp dword [eax + 0x2c], 0
je 0x403a82
mov ecx, dword [esp + 0x10]
cmp ebx, ecx
jbe 0x403a82
mov eax, dword [esp + 0x14]
sub ebx, ecx
push ebx
mov eax, dword [eax]
add eax, ecx
push eax
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
and dword [esi + 0x20], 0
jmp 0x403a8f
lea edx, [esi + 0xc]
mov dword [esp + 0x18], edx
mov dword [esi + 4], 0x5b
jmp 0x403aa8
lea eax, [esi + 0xc]
mov dword [esp + 0x18], eax
cmp ecx, 0x5b
jne 0x403b6d
mov eax, dword [ebp]
cmp dword [eax + 0x24], 0
je 0x403b60
mov ecx, dword [esi + 0x14]
lea edx, [esi + 8]
mov dword [esp + 0x14], ecx
mov ebx, ecx
mov dword [esp + 0x10], edx
cmp ebx, dword [esi + 0xc]
jne 0x403b05
mov eax, dword [ebp]
cmp dword [eax + 0x2c], 0
je 0x403aed
cmp ebx, ecx
jbe 0x403aed
mov eax, dword [edx]
sub ebx, ecx
push ebx
add eax, ecx
push eax
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
push edi
call fcn.00405386
cmp dword [esi + 0x14], 0
pop ecx
jne 0x403da2
and dword [esp + 0x14], 0
xor ebx, ebx
mov eax, dword [ebp]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + 0x24]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov byte [ebx + eax], dl
mov ebx, dword [esi + 0x14]
inc ebx
mov dword [esi + 0x14], ebx
test dl, dl
je 0x403b35
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x403ac1
mov eax, dword [ebp]
cmp dword [eax + 0x2c], 0
je 0x403b60
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
jbe 0x403b60
mov eax, dword [esp + 0x10]
sub ebx, ecx
push ebx
mov eax, dword [eax]
add eax, ecx
push eax
push dword [edi + 0x30]
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
mov ebx, dword [esp + 0x28]
mov dword [esi + 4], 0x67
jmp 0x403b72
cmp ecx, 0x67
jne 0x403bde
mov eax, dword [ebp]
cmp dword [eax + 0x2c], 0
je 0x403bc6
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
cmp eax, dword [ecx]
jbe 0x403b9b
push edi
call fcn.00405386
mov edx, dword [esi + 0x14]
pop ecx
test edx, edx
jne 0x403da2
mov ecx, dword [esi + 8]
mov al, byte [edi + 0x30]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov al, byte [edi + 0x31]
mov byte [edx + ecx], al
xor eax, eax
inc dword [esi + 0x14]
push eax
push eax
push eax
call fcn.00401460
add esp, 0xc
mov dword [edi + 0x30], eax
push edi
mov dword [esi + 4], 0x71
call fcn.00405386
cmp dword [esi + 0x14], 0
pop ecx
jne 0x403da2
cmp dword [edi + 4], 0
jne 0x403bff
cmp dword [esi + 0x74], 0
jne 0x403bff
test ebx, ebx
je 0x403da6
cmp dword [esi + 4], 0x29a
je 0x403ccf
mov ecx, dword [esi + 0x84]
push ebx
push esi
test ecx, ecx
jne 0x403c12
call fcn.00402745
jmp 0x403c39
mov eax, dword [esi + 0x88]
cmp eax, 2
jne 0x403c24
call fcn.00404ca6
jmp 0x403c39
cmp eax, 3
jne 0x403c30
call fcn.00404e63
jmp 0x403c39
imul eax, ecx, 0xc
call dword [eax + 0x420c20]
pop ecx
pop ecx
cmp eax, 2
je 0x403c45
cmp eax, 3
jne 0x403c4c
mov dword [esi + 4], 0x29a
test eax, eax
je 0x403d9c
cmp eax, 2
je 0x403d9c
cmp eax, 1
jne 0x403ccf
cmp ebx, eax
jne 0x403c6f
push esi
call fcn.0040152d
pop ecx
jmp 0x403cbe
cmp ebx, 5
je 0x403cbe
xor eax, eax
push eax
push eax
push eax
push esi
call fcn.00401591
add esp, 0x10
cmp ebx, 3
jne 0x403cbe
mov eax, dword [esi + 0x44]
xor edx, edx
mov ecx, dword [esi + 0x4c]
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esi + 0x4c]
lea eax, [eax*2 - 2]
push eax
push edx
push dword [esi + 0x44]
call sub.VCRUNTIME140.dll_memset
xor eax, eax
add esp, 0xc
cmp dword [esi + 0x74], eax
jne 0x403cbe
mov dword [esi + 0x6c], eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x16b4], eax
push edi
call fcn.00405386
cmp dword [edi + 0x10], 0
pop ecx
je 0x403da2
cmp ebx, 4
jne 0x403da6
cmp dword [esi + 0x18], 0
jg 0x403ce6
xor eax, eax
inc eax
jmp 0x403db5
cmp dword [esi + 0x18], 2
jne 0x403d66
mov edx, dword [esi + 0x14]
mov al, byte [edi + 0x30]
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov al, byte [edi + 0x31]
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov al, byte [edi + 0x32]
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov al, byte [edi + 0x33]
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov al, byte [edi + 8]
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov al, byte [edi + 9]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov al, byte [edi + 0xa]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov al, byte [edi + 0xb]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
jmp 0x403d7f
movzx eax, word [edi + 0x32]
push eax
push esi
call fcn.00405655
movzx eax, word [edi + 0x30]
push eax
push esi
call fcn.00405655
add esp, 0x10
push edi
call fcn.00405386
mov eax, dword [esi + 0x18]
pop ecx
test eax, eax
jle 0x403d92
neg eax
mov dword [esi + 0x18], eax
xor eax, eax
cmp dword [esi + 0x14], eax
sete al
jmp 0x403db5
cmp dword [edi + 0x10], 0
jne 0x403da6
or dword [esi + 0x28], 0xffffffff
xor eax, eax
jmp 0x403db5
mov eax, dword [str.stream_error]
mov dword [edi + 0x18], eax
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret