Function at 0x42b890
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x11c
mov eax, dword [esp + 0x134]
cmp dword [eax], 0x17
ja case.0x42b8ac.286
mov eax, dword [eax]
jmp dword [eax*4 + 0x441c9c]
mov eax, 0x42b0e0
mov edx, dword [esp + 0x134]
lea ebx, [esp + 0x90]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov esi, dword [edx + 8]
lea edx, [esp + 0x5c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x10
mov dword [esp + 4], edx
mov edx, dword [esp + 0x134]
mov dword [esp], edx
call eax
test eax, eax
mov dword [esp + 0x34], eax
jle 0x42d092
mov ebp, dword [esp + 0x130]
test ebp, ebp
je 0x42d124
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x96]
mov dword [esp + 0x14], 0
mov ebp, 1
mov dword [esp + 0x18], esi
lea edx, [ebx + ecx*8 + 6]
lea edi, [ecx*8 + 0xc]
movzx ecx, word [eax - 6]
add word [eax], di
cmp cx, 6
ja 0x42b960
mov esi, ebp
shl esi, cl
or dword [esp + 0x14], esi
add eax, 8
cmp eax, edx
jne 0x42b94b
mov eax, dword [esp + 0x130]
mov dword [esp + 8], 1
xor edi, edi
mov dword [esp + 4], 4
mov esi, dword [esp + 0x18]
mov dword [esp + 0x7c], 0x786b6d0f
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x134]
mov word [esp + 0x4a], di
mov eax, dword [eax]
mov byte [esp + 0x44], al
movzx eax, byte [esi + 8]
mov byte [esp + 0x45], al
movzx eax, byte [esi + 9]
mov esi, dword [esp + 0x34]
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov byte [esp + 0x46], al
mov eax, esi
mov byte [esp + 0x47], al
movzx eax, word [esp + 0x14]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x44]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x130]
mov dword [esp + 8], esi
mov dword [esp + 4], 8
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], 0
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x130]
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov dword [esp + 0xc], eax
mov dword [esp], esi
call sub.msvcrt.dll_fwrite
movzx eax, word [esi]
cmp ax, 6
ja case.default.0x42ba58
jmp dword [eax*4 + 0x441cfc]
mov eax, dword [esp + 0x134]
mov ebx, 8
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov eax, dword [eax + 0x24]
test eax, eax
mov ecx, edx
mov dword [esp + 0x20], edx
mov esi, eax
mov dword [esp + 0x28], eax
je 0x42c334
movzx eax, word [eax + 4]
mov word [esp + 0x7c], ax
movzx eax, word [esi + 6]
mov word [esp + 0x7e], ax
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x10]
sub eax, edx
sar eax, 3
mov byte [esp + 0x80], al
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], eax
sub eax, edx
sar eax, 3
mov byte [esp + 0x81], al
movzx eax, word [esi + 0x20]
mov word [esp + 0x82], ax
movzx eax, word [esi + 0x22]
mov word [esp + 0x84], ax
movzx eax, word [esi + 0x24]
mov word [esp + 0x86], ax
movzx eax, word [esi + 0x26]
mov word [esp + 0x88], ax
movzx eax, word [esi + 0x28]
mov word [esp + 0x8a], ax
movzx eax, word [esi + 0x2a]
mov word [esp + 0x8c], ax
mov eax, dword [esi]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov ebx, eax
mov eax, dword [esp + 0x130]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x14
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea eax, [eax + eax*4]
mov edx, dword [esi + 8]
lea ebx, [ebx + eax*4]
mov eax, dword [esp + 0x130]
call fcn.0042b140
add eax, ebx
mov dword [esp + 0x2c], eax
mov eax, esi
mov esi, dword [esi + 0x2c]
test esi, esi
je 0x42bbaf
cmp word [eax + 0x20], 0
je 0x42bbaf
xor edi, edi
mov edx, dword [esi]
mov eax, dword [esp + 0x130]
add edi, 1
add esi, 8
call fcn.0042b140
mov edx, dword [esi - 4]
mov ebx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
add ebx, eax
mov eax, dword [esp + 0x28]
add dword [esp + 0x2c], ebx
movzx eax, word [eax + 0x20]
cmp edi, eax
jl 0x42bb78
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0x30]
test esi, esi
je 0x42bbe6
cmp word [eax + 0x22], 0
je 0x42bbe6
xor ebx, ebx
mov edx, dword [esi + ebx*8 + 4]
mov eax, dword [esp + 0x130]
add ebx, 1
call fcn.0042b140
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 0x22]
cmp ebx, eax
jl 0x42bbc3
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x34]
test edx, edx
mov dword [esp + 0x18], edx
je 0x42bd96
cmp word [eax + 0x24], 0
je 0x42bd96
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x18]
mov dword [esp + 0x6c], 0
mov eax, dword [esi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
add ebx, eax
movzx eax, word [esi + 4]
mov byte [esp + 0x6c], al
mov eax, dword [esi + 0x10]
test eax, eax
je 0x42d088
sub eax, dword [esi + 8]
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov byte [esp + 0x6d], al
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x42d07e
sub eax, dword [edx + 8]
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov byte [esp + 0x6e], al
mov eax, dword [esp + 0x130]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
lea eax, [esp + 0x6c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea ebx, [ebx + eax*4]
mov eax, dword [esp + 0x18]
cmp word [eax + 4], 0
mov esi, dword [eax + 8]
je 0x42bd74
mov dword [esp + 0x14], 0
movzx eax, word [esi]
mov byte [esp + 0x4c], al
movzx eax, word [esi + 4]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov byte [esp + 0x4d], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x4c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
cmp word [esi], 0
lea ebx, [ebx + eax*4]
mov edi, dword [esi + 8]
je 0x42bd58
xor ebp, ebp
nop
lea esi, [esi]
movzx eax, word [edi]
add ebp, 1
add edi, 4
mov word [esp + 0x54], ax
movzx eax, word [edi - 2]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov word [esp + 0x56], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea ebx, [ebx + eax*4]
movzx eax, word [esi]
cmp ebp, eax
jl 0x42bd10
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], 1
add esi, 0xc
mov edx, dword [esp + 0x14]
movzx eax, word [eax + 4]
cmp edx, eax
jl 0x42bcc4
mov eax, dword [esp + 0x28]
add dword [esp + 0x1c], 1
mov edx, dword [esp + 0x1c]
add dword [esp + 0x18], 0x1c
movzx eax, word [eax + 0x24]
cmp edx, eax
jl 0x42bc10
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x38]
test edx, edx
mov dword [esp + 0x1c], edx
je 0x42c15a
cmp word [eax + 0x26], 0
je 0x42c15a
mov dword [esp + 0x3c], 0
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x134]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov ebx, eax
movzx eax, word [edi + 6]
mov word [esp + 0x6c], ax
movzx eax, word [edi + 8]
mov word [esp + 0x6e], ax
movzx eax, word [edi + 0xa]
mov word [esp + 0x70], ax
movzx eax, word [edi + 0xc]
mov word [esp + 0x72], ax
movzx eax, word [edi + 0xe]
mov word [esp + 0x74], ax
movzx eax, byte [edi + 4]
mov byte [esp + 0x76], al
movzx eax, word [edi + 0x10]
mov byte [esp + 0x77], al
movzx eax, word [edi + 0x12]
mov byte [esp + 0x78], al
movzx eax, word [edi + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x10
mov byte [esp + 0x79], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x6c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
shl eax, 4
add eax, ebx
mov ebx, dword [edi + 0x1c]
mov esi, eax
mov dword [esp + 0x24], eax
test ebx, ebx
je 0x42bf58
cmp word [edi + 0x10], 0
je 0x42bf58
xor edi, edi
mov dword [esp + 0x14], edi
movzx eax, word [ebx]
mov word [esp + 0x4c], ax
movzx eax, word [ebx + 2]
mov word [esp + 0x4e], ax
movzx eax, word [ebx + 4]
mov byte [esp + 0x50], al
mov eax, dword [ebx + 8]
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov byte [esp + 0x51], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x4c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
cmp word [ebx + 4], 0
lea esi, [esi + eax*8]
mov ebp, dword [ebx + 0xc]
je 0x42bf38
xor edi, edi
nop
lea esi, [esi]
mov eax, dword [ebp]
add edi, 1
add ebp, 8
mov dword [esp + 0x54], eax
movzx eax, word [ebp - 4]
mov word [esp + 0x58], ax
movzx eax, byte [ebp - 2]
mov byte [esp + 0x5a], al
movzx eax, byte [ebp - 1]
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea esi, [esi + eax*8]
movzx eax, word [ebx + 4]
cmp edi, eax
jb 0x42bee0
mov eax, dword [esp + 0x1c]
add dword [esp + 0x14], 1
add ebx, 0x18
mov edx, dword [esp + 0x14]
movzx eax, word [eax + 0x10]
cmp edx, eax
jl 0x42be85
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x20]
test ebx, ebx
je 0x42bfa0
cmp word [eax + 0x12], 0
je 0x42bfa0
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x134]
xor esi, esi
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x130]
mov ecx, ebx
add esi, 1
add ebx, 0x1c
call fcn.0042b220
add edi, eax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x12]
cmp esi, eax
jl 0x42bf77
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x2c]
test edx, edx
mov dword [esp + 0x18], edx
je 0x42c134
cmp word [eax + 0x14], 0
je 0x42c134
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x134]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov edx, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov ebx, eax
movzx eax, word [esi + 8]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov byte [esp + 0x40], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov edx, esi
lea ebp, [ebx + eax*4]
mov esi, dword [esi + 0xc]
cmp word [edx + 8], 0
je 0x42c112
mov dword [esp + 0x14], 0
nop
movzx eax, word [esi]
mov byte [esp + 0x4c], al
movzx eax, word [esi + 2]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov byte [esp + 0x4d], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x4c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
cmp word [esi + 2], 0
lea ebp, [ebp + eax*4]
mov ebx, dword [esi + 8]
je 0x42c0f6
xor edi, edi
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebx]
add edi, 1
add ebx, 8
mov dword [esp + 0x54], eax
mov eax, dword [ebx - 4]
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea ebp, [ebp + eax*8]
movzx eax, word [esi + 2]
cmp edi, eax
jl 0x42c0b0
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], 1
add esi, 0xc
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 8]
cmp ecx, eax
jl 0x42c060
mov eax, dword [esp + 0x1c]
add dword [esp + 0x20], 1
mov edx, dword [esp + 0x20]
add dword [esp + 0x24], ebp
add dword [esp + 0x18], 0x14
movzx eax, word [eax + 0x14]
cmp edx, eax
jl 0x42bfc6
mov eax, dword [esp + 0x28]
add dword [esp + 0x3c], 1
mov edx, dword [esp + 0x24]
add dword [esp + 0x2c], edx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x1c], 0x30
movzx eax, word [eax + 0x26]
cmp edx, eax
jl 0x42bdbc
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
je 0x42c19c
cmp word [eax + 0x28], 0
je 0x42c19c
mov edi, dword [esp + 0x134]
xor esi, esi
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x130]
mov ecx, ebx
add esi, 1
add ebx, 0x1c
call fcn.0042b220
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 0x28]
cmp esi, eax
jl 0x42c175
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x42d0bd
mov edx, dword [esp + 0x130]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x28]
movzx edx, word [edx + 0x2a]
mov dword [esp + 4], 8
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x2c]
lea ebx, [edx + eax*8 + 8]
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 4]
cmp eax, ebx
je 0x42c344
mov esi, dword [esp + 0x30]
mov dword [esp + 4], 3
mov dword [0x44c348], 0x18
movzx eax, word [esi]
mov dword [esp], eax
call fcn.004284f0
mov dword [0x44b754], eax
movzx eax, word [esi + 4]
sub ebx, eax
xor eax, eax
mov dword [0x44c344], ebx
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x134]
mov ebx, dword [eax + 8]
mov eax, dword [ebx + 0x1c]
movzx ecx, byte [ebx + 8]
mov edx, dword [eax + 0xe4]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebx]
lea esi, [edx + ecx*4]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov edi, eax
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
movzx eax, byte [ebx + 8]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
movzx eax, byte [ebx + 9]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
movzx eax, byte [eax + 0xf5]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 8]
movzx edx, byte [ebx + 9]
mov dword [esp + 4], 4
mov dword [esp], esi
sub edx, eax
mov eax, edx
add eax, 1
mov dword [esp + 8], eax
call sub.msvcrt.dll_fwrite
mov ecx, dword [ebx + 0x1c]
lea ebx, [edi + eax*4 + 0xc]
movzx edx, byte [ecx + 0xf5]
test dl, dl
je 0x42c334
mov eax, dword [esp + 0x130]
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0xe8]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 4]
cmp eax, ebx
jne 0x42c1ea
add dword [esp + 0x38], 1
add dword [esp + 0x30], 8
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x34]
jne 0x42ba24
add esp, 0x11c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x134]
mov ebx, 0x10
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
movzx eax, word [esp + 0x64]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov edi, dword [esi + 0x18]
test edi, edi
je 0x42c334
mov ebp, 8
xor bl, bl
jmp 0x42c514
test dword [eax + 8], 0xffffff00
jne 0x42c525
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x42c525
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x42c505
mov eax, dword [eax + ebx*4 + 0x54]
test eax, eax
je 0x42c505
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov dword [esp + 0x14], eax
lea eax, [ebx + 1]
mov byte [esp + 0x7c], al
lea eax, [ebx + ebx*2]
lea edi, [edi + eax*4]
movzx eax, byte [edi + 4]
mov byte [esp + 0x7d], al
movzx eax, byte [edi + 7]
mov byte [esp + 0x7e], al
movzx eax, byte [edi + 9]
mov byte [esp + 0x7f], al
movzx eax, word [edi + 0xa]
mov word [esp + 0x80], ax
movzx eax, byte [edi + 5]
mov byte [esp + 0x82], al
movzx eax, byte [edi + 6]
mov byte [esp + 0x83], al
mov eax, dword [edi + 0xc]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x14]
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
add ebp, eax
add ebx, 1
cmp ebx, 0x20
je 0x42d076
mov edi, dword [esi + 0x18]
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*4]
mov edx, dword [eax + 4]
test edx, edx
je 0x42c430
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x42d016
mov eax, dword [eax + ebx*4 + 0x54]
xor edx, edx
test eax, eax
je 0x42c471
jmp 0x42c45f
mov eax, dword [esp + 0x134]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 0x20], eax
mov ecx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0x1c]
xor eax, eax
test edx, edx
je 0x42c571
mov eax, dword [edx + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov esi, dword [esp + 0x20]
mov ebx, eax
add ebx, 4
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + 1]
mov dword [esp + 8], 1
mov dword [esp + 4], 2
mov word [esp + 0x7c], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esi + 0x14]
cmp byte [eax + 1], 0
mov edi, dword [eax + 4]
je 0x42c7c5
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x1c], 0
movzx eax, byte [edi + 1]
mov byte [esp + 0x7c], al
movzx eax, word [edi + 2]
mov word [esp + 0x7e], ax
movzx eax, byte [edi + 4]
mov byte [esp + 0x7d], al
movzx eax, byte [edi + 5]
mov byte [esp + 0x80], al
mov ecx, dword [edi + 0xc]
test ecx, ecx
setne byte [esp + 0x82]
mov esi, dword [edi + 0x14]
test esi, esi
je 0x42d043
movzx eax, byte [edi + 4]
mov byte [esp + 0x81], al
lea eax, [esp + 0x7c]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
cmp byte [edi + 5], 0
lea ebx, [ebx + eax*8]
mov esi, dword [edi + 8]
je 0x42c6d9
xor edx, edx
mov dword [esp + 0x14], edi
mov edi, ebx
mov ebx, edx
movzx eax, byte [esi + 4]
add ebx, 1
add esi, 0xc
mov byte [esp + 0x54], al
movzx eax, byte [esi - 5]
mov byte [esp + 0x55], al
movzx eax, word [esi - 4]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov word [esp + 0x56], ax
lea eax, [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 5]
cmp ebx, eax
jb 0x42c685
mov ebx, edi
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, ebp
call fcn.0042b140
mov esi, dword [edi + 0xc]
add ebx, eax
test esi, esi
je 0x42c75c
cmp byte [edi + 5], 0
je 0x42c75c
xor edx, edx
mov dword [esp + 0x14], edi
mov edi, ebx
mov ebx, edx
nop
movzx eax, byte [esi + 1]
add ebx, 1
add esi, 4
mov byte [esp + 0x6c], al
movzx eax, word [esi - 2]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov word [esp + 0x6e], ax
lea eax, [esp + 0x6c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 5]
cmp ebx, eax
jb 0x42c710
mov ebx, edi
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x42c7a6
cmp byte [esp + 0x81], 0
je 0x42c7a6
mov dword [esp + 0x14], edi
xor esi, esi
mov edi, ecx
mov eax, dword [edi + esi*4]
add esi, 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, ebp
call fcn.0042b140
add ebx, eax
movzx eax, byte [esp + 0x81]
cmp esi, eax
jb 0x42c775
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], 1
add edi, 0x18
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 0x14]
movzx eax, byte [eax + 1]
cmp edx, eax
jb 0x42c608
add ebx, 8
jmp 0x42c334
mov eax, dword [esp + 0x134]
mov edi, dword [eax + 8]
mov eax, dword [edi]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x42d11d
mov edx, dword [eax + 8]
xor eax, eax
test edx, edx
jne 0x42d0c9
mov edx, eax
mov eax, dword [esp + 0x130]
xor ebx, ebx
mov esi, 1
call fcn.0042b140
mov ebp, eax
mov eax, dword [edi + 0x1c]
xor ecx, ecx
mov edx, dword [eax + ecx*4 + 0xd4]
test edx, edx
je 0x42c822
mov edx, esi
shl edx, cl
or ebx, edx
add ecx, 1
cmp ecx, 4
jne 0x42c811
mov eax, dword [esp + 0x130]
xor esi, esi
mov dword [esp + 4], eax
movzx eax, byte [edi + 8]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
movzx eax, byte [edi + 9]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call sub.msvcrt.dll_putc
lea eax, [ebp + 4]
mov ebp, 1
mov dword [esp + 0x1c], eax
test ebp, ebx
je 0x42c8c0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4 + 0xd4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
add dword [esp + 0x1c], eax
add esi, 1
add ebp, ebp
cmp esi, 4
jne 0x42c890
movzx eax, byte [edi + 8]
mov edx, eax
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 8]
cmp byte [edi + 9], al
jb 0x42cfc7
mov eax, edx
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x130]
add eax, eax
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
mov eax, ebx
shl eax, 3
mov dword [esp + 0x24], eax
add eax, dword [edx + 0x10]
mov ecx, eax
movzx eax, byte [eax + 5]
mov byte [esp + 0x6c], al
movzx eax, byte [ecx + 4]
mov byte [esp + 0x2c], al
mov byte [esp + 0x6d], al
mov eax, dword [edx + 0x14]
test eax, eax
je 0x42d01d
movzx eax, byte [eax + ebx]
mov byte [esp + 0x6e], al
mov byte [esp + 0x6f], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov eax, dword [edi + 0x10]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x42cddd
mov ebx, dword [esp + 0x14]
add ebx, dword [eax + 0x10]
movzx eax, byte [ebx]
mov dword [esp + 0x28], ebx
test al, 0xf
je 0x42cd7f
test byte [esp + 0x2c], 0xf
je 0x42cd7f
mov dword [esp + 0x2c], esi
mov dword [esp + 0x130], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
jmp 0x42c9c2
mov edx, dword [edi + 0x14]
add ebx, 1
mov ecx, dword [edx + 0x10]
add ecx, ebp
movzx eax, byte [ecx + 4]
and eax, 0xf
cmp ebx, eax
jge 0x42cd70
movzx eax, byte [esi]
bt eax, ebx
jae 0x42c9a5
mov eax, ebx
mov esi, dword [edx + 4]
and eax, 3
movzx eax, byte [ecx + eax]
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00422310
test eax, eax
mov dword [esp + ebx*4 + 0x7c], eax
je 0x42ca01
mov eax, 1
mov ecx, ebx
shl eax, cl
or byte [esp + 0x6f], al
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
add esi, dword [eax + 0x10]
jmp 0x42c9a5
mov eax, dword [esp + 0x134]
mov edi, dword [eax + 8]
xor eax, eax
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi]
test edx, edx
je 0x42ca35
mov eax, dword [edx + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
mov ebx, eax
mov eax, dword [edi + 0x20]
add ebx, 4
movzx eax, word [eax + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 4], 2
mov word [esp + 0x7c], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x61]
mov dword [esp], eax
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x130]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
mov eax, dword [edi + 0x20]
cmp word [eax + 0x14], 0
mov esi, dword [eax]
je 0x42cb87
xor ebp, ebp
mov eax, dword [esi]
add ebp, 1
add esi, 0x10
mov dword [esp + 0x7c], eax
movzx eax, byte [esi - 0xa]
mov byte [esp + 0x80], al
movzx eax, byte [esi - 0xb]
mov byte [esp + 0x81], al
movzx eax, byte [esi - 9]
mov byte [esp + 0x82], al
movzx eax, byte [esi - 0xc]
mov byte [esp + 0x83], al
movzx eax, byte [esi - 8]
mov byte [esp + 0x84], al
movzx eax, byte [esi - 7]
mov byte [esp + 0x85], al
movzx eax, byte [esi - 6]
mov byte [esp + 0x86], al
movzx eax, byte [esi - 5]
mov byte [esp + 0x87], al
movzx eax, byte [esi - 4]
mov byte [esp + 0x88], al
movzx eax, byte [esi - 3]
mov byte [esp + 0x89], al
movzx eax, byte [esi - 2]
mov byte [esp + 0x8a], al
movzx eax, byte [esi - 1]
mov dword [esp + 4], 0x10
mov dword [esp + 8], 1
mov byte [esp + 0x8b], al
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
shl eax, 4
add ebx, eax
mov eax, dword [edi + 0x20]
movzx eax, word [eax + 0x14]
cmp ebp, eax
jb 0x42cabc
movzx eax, byte [esp + 0x61]
test al, al
je 0x42c7c5
mov ebp, 1
xor esi, esi
test ebp, eax
jne 0x42cbb6
add esi, 1
add ebp, ebp
cmp esi, 4
je 0x42c7c5
movzx eax, byte [esp + 0x61]
test ebp, eax
je 0x42cb9f
mov eax, dword [edi + 0x20]
add ebx, 4
lea edx, [eax + esi*4]
movzx eax, byte [edx + 5]
mov byte [esp + 0x6c], al
movzx eax, word [edx + 6]
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov word [esp + 0x6e], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x6c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
jmp 0x42cb9f
mov eax, dword [esp + 0x134]
mov ebx, 4
xor edi, edi
mov ebp, 1
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov dword [esp + 8], 1
mov dword [esp + 4], 2
mov dword [esp + 0x14], eax
movzx eax, word [esp + 0x5c]
mov word [esp + 0x7c], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
movzx eax, word [esp + 0x5e]
mov dword [esp + 8], 1
mov dword [esp + 4], 2
mov word [esp + 0x7c], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
jmp 0x42cc83
add edi, 1
add ebp, ebp
cmp edi, 0x10
je 0x42ccb4
movzx eax, word [esp + 0x5c]
test ebp, eax
je 0x42cc79
mov eax, dword [esp + 0x130]
add ebx, 1
add ebp, ebp
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi + 0x14]
add edi, 1
mov dword [esp], eax
call sub.msvcrt.dll_putc
cmp edi, 0x10
jne 0x42cc83
movzx eax, byte [esp + 0x60]
lea edi, [eax + 3]
and edi, 0xfffffffc
sub edi, eax
mov ebp, edi
je 0x42cce7
xor edi, edi
mov eax, dword [esp + 0x130]
mov dword [esp], 0
add edi, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
cmp edi, ebp
jne 0x42ccc7
add ebx, edi
xor edi, edi
mov ebp, 1
jmp 0x42ccfe
add edi, 1
add ebp, ebp
cmp edi, 0x10
je 0x42c7c5
movzx eax, word [esp + 0x5e]
test ebp, eax
je 0x42ccf0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + edi*4 + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.00422310
mov edx, eax
mov eax, dword [esp + 0x130]
call fcn.0042b140
add ebx, eax
jmp 0x42ccf0
mov eax, 0x42b520
jmp 0x42b8b8
mov eax, 0x42b830
jmp 0x42b8b8
mov eax, 0x42b730
jmp 0x42b8b8
mov eax, 0x42b650
jmp 0x42b8b8
mov eax, 0x42b5a0
jmp 0x42b8b8
mov eax, 0x42a910
jmp 0x42b8b8
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
cmp word [eax + edx], 0
je 0x42cd96
or byte [esp + 0x6f], 0x10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 8]
cmp byte [eax + edx], 0
je 0x42cdac
or byte [esp + 0x6f], 0x20
mov eax, dword [esp + 0x28]
test byte [eax], 0x20
je 0x42cddd
mov eax, dword [edi + 0xc]
test eax, eax
je 0x42cddd
mov ecx, dword [esp + 0x14]
mov edx, ecx
sar edx, 3
movzx edx, byte [eax + edx + 0x34]
mov eax, ecx
and eax, 7
bt edx, eax
jae 0x42d039
or byte [esp + 0x6f], 0x40
lea eax, [esp + 0x6c]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea esi, [esi + eax*4]
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
test byte [eax + edx], 0xf
je 0x42ce31
lea ebx, [esp + 0x7c]
mov edx, dword [ebx]
test edx, edx
je 0x42ce23
mov eax, ebp
call fcn.0042b140
add esi, eax
lea eax, [esp + 0x8c]
add ebx, 4
cmp ebx, eax
jne 0x42ce14
test byte [esp + 0x6d], 0xf
je 0x42cf23
mov edx, dword [edi + 0x14]
mov eax, dword [esp + 0x24]
add eax, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
movzx ecx, word [eax + 6]
lea ebx, [edx + ecx*4]
movzx ecx, byte [eax + 5]
movzx eax, byte [eax + 4]
and eax, 0xf
imul ecx, eax
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x42cea9
mov dword [esp + 0x28], esi
mov esi, ebx
mov ebx, ecx
nop
mov eax, dword [esi]
mov dword [esp + 0xc], ebp
add esi, 4
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov dword [esp + 0x54], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
sub ebx, 1
jne 0x42ce70
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
lea esi, [esi + eax*4]
movzx ecx, byte [esp + 0x6f]
test cl, 0x10
je 0x42cf28
mov edx, dword [edi + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 4]
movzx ebx, word [eax + ebx]
test bx, bx
lea edx, [edx + ebx*8]
je 0x42d027
mov eax, dword [edi + 0x14]
mov ebx, dword [esp + 0x24]
add ebx, dword [eax + 0x10]
mov eax, ebx
movzx ebx, byte [ebx + 5]
movzx eax, byte [eax + 4]
and eax, 0xf
imul ebx, eax
test ebx, ebx
je 0x42cf28
mov dword [esp + 0x1c], edi
mov edi, esi
mov esi, edx
mov dword [esp], esi
mov dword [esp + 0xc], ebp
add esi, 8
mov dword [esp + 8], 1
mov dword [esp + 4], 8
call sub.msvcrt.dll_fwrite
sub ebx, 1
lea edi, [edi + eax*8]
jne 0x42cef6
mov esi, edi
mov edi, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x6f]
and ecx, 0x20
jne 0x42cfd3
add dword [esp + 0x14], 1
movzx eax, byte [edi + 9]
mov edx, dword [esp + 0x14]
add dword [esp + 0x18], 2
cmp edx, eax
jle 0x42c8f4
mov ecx, dword [esp + 0x68]
mov ebp, esi
mov dword [esp + 0x1c], esi
test ecx, ecx
jle 0x42cfc7
movzx ebx, byte [edi + 8]
cmp ebx, eax
jg 0x42cfc7
lea esi, [ebx + ebx]
jmp 0x42cf70
add ebx, 1
add esi, 2
cmp ebx, eax
jg 0x42cfc3
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x24]
add ecx, esi
cmp word [ecx], 0
je 0x42cf66
mov byte [esp + 0x7c], bl
movzx eax, word [ecx]
add ebx, 1
mov dword [esp + 8], 1
mov dword [esp + 4], 4
add esi, 2
mov word [esp + 0x7e], ax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea ebp, [ebp + eax*4]
movzx eax, byte [edi + 9]
cmp ebx, eax
jle 0x42cf70
mov dword [esp + 0x1c], ebp
mov ebx, dword [esp + 0x1c]
add ebx, 8
jmp 0x42c334
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x18]
add edx, dword [eax + 8]
mov eax, edx
movzx edx, byte [edx]
mov byte [esp + 0x54], dl
movzx eax, byte [eax + 1]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov byte [esp + 0x55], al
lea eax, [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
lea esi, [esi + eax*4]
jmp 0x42cf31
xor edx, edx
jmp 0x42c471
mov byte [esp + 0x6e], 0
jmp 0x42c930
mov dword [esp + 0x1c], edi
mov ebx, 1
mov edi, esi
mov esi, edx
jmp 0x42cef6
or byte [esp + 0x6f], 0x80
jmp 0x42cddd
mov byte [esp + 0x81], 0
jmp 0x42c64f
mov dword [0x44c344], eax
mov dword [0x44c348], 0xb
xor eax, eax
mov dword [0x44b754], 0x441c8f
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [ebp + 8]
jmp 0x42c334
mov byte [esp + 0x6e], 0xff
jmp 0x42bc80
mov byte [esp + 0x6d], 0xff
jmp 0x42bc61
mov dword [0x44c348], 0xd
mov dword [0x44b754], 0x441c7f
xor eax, eax
mov dword [0x44c344], 0
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x2c]
add ebx, 8
jmp 0x42c334
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00422310
jmp 0x42c7f5
mov eax, dword [esp + 0x134]
mov dword [esp + 4], 3
mov dword [0x44c348], 0xc
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004284f0
mov dword [0x44c344], 0
mov dword [0x44b754], eax
add esp, 0x11c
pop ebx
xor eax, eax
pop esi
pop edi
pop ebp
ret
xor eax, eax
jmp 0x42c7f5
mov dword [0x44c348], 0xf
mov dword [0x44b754], 0x441c7f
xor eax, eax
mov dword [0x44c344], 0
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret