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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x85c
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx + 0x14], 0
add eax, 0xc
mov dword [ecx + 0x18], 0
mov dword [ecx], eax
mov byte [ecx + 0x1c], 1
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x24], 0
mov byte [ecx + 0x28], 1
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x34], 0
mov byte [ecx + 0x38], 1
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x40], 0
mov byte [ecx + 0x44], 1
mov dword [ecx + 0x48], 0
mov dword [ecx + 0x4c], 0
mov byte [ecx + 0x50], 1
mov dword [ecx + 0x54], 0
mov dword [ecx + 0x58], 0
mov byte [ecx + 0x5c], 1
mov dword [ecx + 0x60], 0
mov dword [ecx + 0x64], 0
mov byte [ecx + 0x68], 1
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x74], 0
mov byte [ecx + 0x78], 1
mov eax, dword [ebp + 0xc]
mov dword [ecx + 0x7c], 0
mov dword [ecx + 0x80], 0
mov byte [ecx + 0x84], 1
mov ecx, dword [eax + 4]
test edx, edx
je 0x4509ea
mov eax, dword [ebp + 0x14]
mov dword [esp], ecx
mov dword [esp + 8], eax
lea eax, [ebp - 0x818]
mov dword [esp + 4], eax
call edx
mov ecx, eax
mov eax, dword [ebp + 0xc]
cmp dword [eax], 3
je 0x450aa0
mov esi, dword [0x678a20]
test esi, esi
jne 0x450a88
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x4513b1
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x4513b1
mov dword [esp + 4], str.INTERNAL_ERROR:_must_be_dir_block
mov dword [esp], edi
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [ebp - 0x81c]
cmp dword [0x678a20], 0
mov dword [ebp - 0x824], eax
je 0x451258
lea esi, [esi]
mov dword [esp + 4], 1
mov dword [esp], 0x6789e0
call dword [sym.imp.msvcrt.dll_longjmp]
lea esi, [esi]
mov eax, dword [ebp + 0xc]
lea edi, [ebx + 4]
mov dword [ebp - 0x81c], edi
mov eax, dword [eax + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov ecx, edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0044f910
sub esp, 0x24
mov ecx, edi
call fcn.004c6b60
cmp byte [ebx + 0x78], 0
mov dword [ebp - 0x820], eax
mov dword [ebx + 0x6c], eax
je 0x450b1e
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x450b1e
mov dword [esp], eax
call fcn.00570850
mov edi, dword [ebp - 0x820]
mov dword [ebx + 0x70], edi
test edi, edi
je 0x450ff8
cmp edi, 0x1fffffff
ja 0x572edf
lea eax, [edi*4]
mov dword [esp], eax
call fcn.00570890
mov dword [ebx + 0x74], eax
mov byte [ebx + 0x78], 1
test edi, edi
jle 0x450b7e
xor esi, esi
jmp 0x450b63
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp - 0x81c]
lea edi, [eax + esi*4]
call fcn.004c6b60
mov dword [edi], eax
add esi, 1
cmp dword [ebp - 0x820], esi
jne 0x450b60
mov edi, dword [ebx + 0x6c]
test edi, edi
jne 0x450bd0
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x834], 0
mov dword [ebx + 0x7c], 0
mov dword [ebp - 0x824], 0
mov dword [ebx + 0x80], 0
mov byte [ebx + 0x84], 1
mov dword [ebx + 0x2c], 0
jmp 0x450dd7
cmp edi, 0x1fffffff
ja 0x572efc
lea eax, [edi*4]
mov dword [esp], eax
call fcn.00570890
mov dword [ebp - 0x834], eax
mov eax, dword [ebx + 8]
xor esi, esi
mov dword [ebp - 0x820], esi
mov dword [ebp - 0x824], eax
mov eax, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebp - 0x824]
mov dword [esp + 4], 0
mov dword [esp], esi
sub eax, esi
mov dword [esp + 8], eax
call sub.msvcrt.dll_memchr
test eax, eax
je 0x450f88
mov edx, dword [ebp - 0x820]
mov ecx, dword [ebp - 0x834]
mov dword [ecx + edx*4], esi
lea esi, [eax + 1]
add edx, 1
mov dword [ebx + 0xc], esi
mov dword [ebp - 0x820], edx
cmp edi, edx
jne 0x450c07
cmp edi, 0xfffffff
ja 0x451503
lea eax, [edi*8]
mov dword [esp], eax
call fcn.00570890
mov dword [ebp - 0x820], eax
xor esi, esi
mov ecx, dword [ebp - 0x81c]
call fcn.004c6b60
mov ecx, dword [ebp - 0x820]
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
add esi, 1
cmp edi, esi
jne 0x450c70
mov edi, dword [ebx + 0x6c]
test edi, edi
je 0x450b99
cmp edi, 0xfffffff
ja 0x572f12
lea eax, [edi*8]
mov dword [esp], eax
call fcn.00570890
mov dword [ebp - 0x824], eax
xor esi, esi
lea esi, [esi]
mov ecx, dword [ebp - 0x81c]
call fcn.004c6b60
mov ecx, dword [ebp - 0x824]
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
add esi, 1
cmp esi, edi
jne 0x450cc0
mov esi, dword [ebx + 0x6c]
mov dword [ebx + 0x7c], esi
test esi, esi
je 0x450baa
cmp esi, 0x3333333
ja 0x572f1e
lea eax, [esi + esi*4]
shl eax, 3
mov dword [esp], eax
call fcn.00570890
mov dword [ebx + 0x80], eax
mov ecx, eax
mov eax, dword [ebp + 0xc]
xor edi, edi
mov byte [ebx + 0x84], 1
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x838], ebx
mov dword [ebp - 0x830], eax
mov eax, dword [ebp - 0x834]
mov dword [ebp - 0x82c], edx
mov dword [ebp - 0x828], eax
nop
mov eax, dword [ebp - 0x828]
mov ebx, dword [ebp - 0x820]
mov dword [ecx], 2
mov edx, dword [ebp - 0x82c]
mov dword [ecx + 0x10], 0
mov eax, dword [eax + edi*4]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x830]
sub eax, dword [ebx + edi*8]
sbb edx, dword [ebx + edi*8 + 4]
add ecx, 0x28
mov dword [ecx - 0x20], eax
mov eax, dword [ebp - 0x824]
mov dword [ecx - 0x1c], edx
mov edx, dword [eax + edi*8 + 4]
mov eax, dword [eax + edi*8]
add edi, 1
mov dword [ecx - 0x10], eax
mov dword [ecx - 0xc], edx
cmp edi, esi
jne 0x450d40
mov ebx, dword [ebp - 0x838]
mov esi, dword [ebp - 0x824]
xor edx, edx
xor eax, eax
mov dword [ebx + 0x2c], 0
mov ecx, dword [ebx + 0x74]
lea esi, [esi]
add edx, dword [ecx + eax*4]
mov dword [ebx + 0x2c], edx
mov dword [ecx + eax*4], edx
add eax, 1
cmp dword [ebx + 0x6c], eax
jg 0x450dc0
mov dword [ebp - 0x824], esi
mov ecx, dword [ebp - 0x81c]
call fcn.004c6b60
cmp byte [ebx + 0x1c], 0
mov esi, eax
je 0x450df9
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x450df9
mov dword [esp], eax
call fcn.00570850
mov dword [ebx + 0x14], esi
test esi, esi
jne 0x451010
mov dword [ebx + 0x18], 0
mov byte [ebx + 0x1c], 1
cmp byte [ebx + 0x38], 0
mov esi, dword [ebx + 0x2c]
je 0x450e27
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x450e27
mov dword [esp], eax
call fcn.00570850
mov dword [ebx + 0x30], esi
test esi, esi
jne 0x45114f
mov dword [ebx + 0x34], 0
mov byte [ebx + 0x38], 1
mov eax, dword [ebx + 0x2c]
cmp byte [ebx + 0x28], 0
mov dword [ebp - 0x830], eax
je 0x450e5b
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x450e5b
mov dword [esp], eax
call fcn.00570850
mov eax, dword [ebp - 0x830]
mov dword [ebx + 0x20], eax
test eax, eax
jne 0x4512fe
mov dword [ebx + 0x24], 0
mov byte [ebx + 0x28], 1
mov eax, dword [ebx + 0x2c]
cmp byte [ebx + 0x44], 0
mov dword [ebp - 0x830], eax
je 0x450e95
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x450e95
mov dword [esp], eax
call fcn.00570850
mov eax, dword [ebp - 0x830]
mov dword [ebx + 0x3c], eax
test eax, eax
jne 0x4512b0
mov dword [ebx + 0x40], 0
mov byte [ebx + 0x44], 1
cmp byte [ebx + 0x50], 0
mov esi, dword [ebx + 0x2c]
je 0x450ec9
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x450ec9
mov dword [esp], eax
call fcn.00570850
mov dword [ebx + 0x48], esi
test esi, esi
jne 0x4511f2
mov dword [ebx + 0x4c], 0
mov byte [ebx + 0x50], 1
cmp byte [ebx + 0x5c], 0
mov esi, dword [ebx + 0x2c]
je 0x450ef7
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x450ef7
mov dword [esp], eax
call fcn.00570850
mov dword [ebx + 0x54], esi
test esi, esi
jne 0x451343
mov dword [ebx + 0x58], 0
mov byte [ebx + 0x5c], 1
cmp byte [ebx + 0x68], 0
mov esi, dword [ebx + 0x2c]
je 0x450f25
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x450f25
mov dword [esp], eax
call fcn.00570850
mov dword [ebx + 0x60], esi
test esi, esi
je 0x4513ff
cmp esi, 0x1fffffff
ja 0x572eda
lea eax, [esi*4]
mov dword [esp], eax
call fcn.00570890
mov edx, dword [ebp - 0x824]
mov dword [ebx + 0x64], eax
xor ecx, ecx
mov byte [ebx + 0x68], 1
mov dword [ebp - 0x81c], edx
cmp esi, ecx
jle 0x451406
mov edx, dword [ebx + 0xc]
mov edi, dword [edx]
add edx, 4
mov dword [ebx + 0xc], edx
mov dword [eax + ecx*4], edi
cmp edx, dword [ebx + 8]
ja 0x450a68
add ecx, 1
jmp 0x450f60
mov ecx, dword [0x678a20]
test ecx, ecx
jne 0x450a88
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x451446
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x451446
mov dword [esp + 4], str.ERROR:_archive_structure_corrupted__bad_string_
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], edi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
jmp 0x450a5c
mov dword [ebx + 0x74], 0
mov byte [ebx + 0x78], 1
jmp 0x450b7e
cmp esi, 0x1fffffff
ja 0x572dae
lea eax, [esi*4]
mov dword [esp], eax
call fcn.00570890
mov dword [ebp - 0x828], eax
mov dword [ebx + 0x18], eax
mov byte [ebx + 0x1c], 1
test esi, esi
jle 0x450e0f
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
xor edi, edi
mov dword [ebp - 0x830], eax
mov eax, dword [ebp - 0x824]
mov dword [ebp - 0x824], edi
mov edi, esi
mov esi, edx
mov dword [ebp - 0x838], eax
mov eax, dword [ebp - 0x830]
mov dword [esp + 4], 0
mov dword [esp], esi
sub eax, esi
mov dword [esp + 8], eax
call sub.msvcrt.dll_memchr
test eax, eax
je 0x4510d8
mov edx, dword [ebp - 0x824]
mov ecx, dword [ebp - 0x828]
mov dword [ecx + edx*4], esi
lea esi, [eax + 1]
add edx, 1
mov dword [ebx + 0xc], esi
mov dword [ebp - 0x824], edx
cmp edi, edx
jne 0x451064
mov eax, dword [ebp - 0x838]
xor esi, esi
mov dword [ebp - 0x824], eax
lea esi, [esi]
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + esi*4]
mov dword [esp], eax
call fcn.004329d0
add esi, 1
cmp dword [ebx + 0x14], esi
jg 0x4510b8
jmp 0x450e0f
mov eax, dword [ebp - 0x838]
mov edx, dword [0x678a20]
mov dword [ebp - 0x824], eax
test edx, edx
jne 0x450a88
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x4514a4
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x4514a4
mov dword [esp + 4], str.ERROR:_archive_structure_corrupted__bad_string_
mov dword [esp], edi
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
jmp 0x450a5c
cmp esi, 0x1fffffff
ja 0x572ef7
lea eax, [esi*4]
mov dword [esp], eax
call fcn.00570890
mov dword [ebp - 0x828], eax
mov edx, dword [ebx + 0xc]
xor edi, edi
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 8]
mov byte [ebx + 0x38], 1
mov dword [ebp - 0x830], eax
mov eax, dword [ebp - 0x824]
mov dword [ebp - 0x824], edi
mov edi, esi
mov esi, edx
mov dword [ebp - 0x838], eax
mov eax, dword [ebp - 0x830]
mov dword [esp + 4], 0
mov dword [esp], esi
sub eax, esi
mov dword [esp + 8], eax
call sub.msvcrt.dll_memchr
test eax, eax
je 0x4510d8
mov edx, dword [ebp - 0x824]
mov ecx, dword [ebp - 0x828]
mov dword [ecx + edx*4], esi
lea esi, [eax + 1]
add edx, 1
mov dword [ebx + 0xc], esi
mov dword [ebp - 0x824], edx
cmp edi, edx
jne 0x45119b
mov eax, dword [ebp - 0x838]
mov dword [ebp - 0x824], eax
jmp 0x450e3d
cmp esi, 0x1fffffff
ja 0x572db3
lea eax, [esi*4]
mov dword [esp], eax
call fcn.00570890
mov dword [ebp - 0x830], esi
mov esi, dword [ebp - 0x824]
mov ecx, eax
xor edx, edx
mov byte [ebx + 0x50], 1
mov edi, dword [ebx + 8]
mov dword [ebp - 0x81c], esi
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
add eax, 4
mov dword [ecx + edx*4], esi
cmp eax, edi
jbe 0x451291
mov dword [ebx + 0xc], eax
mov edx, dword [ebp - 0x81c]
mov eax, dword [0x678a20]
mov dword [ebp - 0x824], edx
test eax, eax
jne 0x450a88
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x4514a4
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x4514a4
mov dword [esp + 4], str.ERROR:_archive_structure_corrupted__bad_data_
jmp 0x451126
add edx, 1
cmp dword [ebp - 0x830], edx
jne 0x451230
mov edx, dword [ebp - 0x81c]
mov dword [ebx + 0xc], eax
mov dword [ebp - 0x824], edx
jmp 0x450edf
cmp eax, 0xfffffff
ja 0x572db8
shl eax, 3
mov dword [esp], eax
call fcn.00570890
mov dword [ebx + 0x40], eax
xor esi, esi
mov byte [ebx + 0x44], 1
jmp 0x4512db
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebp - 0x81c]
lea edi, [eax + esi*8]
call fcn.004c6b60
mov dword [edi], eax
add esi, 1
mov dword [edi + 4], edx
cmp dword [ebp - 0x830], esi
jne 0x4512d8
jmp 0x450eb1
cmp eax, 0x1fffffff
ja 0x572f06
shl eax, 2
mov dword [esp], eax
call fcn.00570890
mov dword [ebx + 0x24], eax
xor esi, esi
mov byte [ebx + 0x28], 1
jmp 0x451323
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebp - 0x81c]
lea edi, [eax + esi*4]
call fcn.004c6b60
mov dword [edi], eax
add esi, 1
cmp dword [ebp - 0x830], esi
jne 0x451320
jmp 0x450e77
cmp esi, 0x1fffffff
ja 0x572ef2
lea eax, [esi*4]
mov dword [esp], eax
call fcn.00570890
mov ecx, dword [ebp - 0x824]
mov dword [ebx + 0x58], eax
mov edi, eax
xor edx, edx
mov eax, dword [ebx + 8]
mov byte [ebx + 0x5c], 1
mov dword [ebp - 0x81c], ecx
mov dword [ebp - 0x830], eax
mov eax, dword [ebx + 0xc]
movzx ecx, byte [eax]
add eax, 1
mov dword [ebx + 0xc], eax
mov dword [edi + edx*4], ecx
cmp eax, dword [ebp - 0x830]
ja 0x450a68
add edx, 1
cmp esi, edx
jne 0x451381
mov eax, dword [ebp - 0x81c]
mov dword [ebp - 0x824], eax
jmp 0x450f0d
cmp dword [0x678a20], 0
jne 0x450a88
mov eax, 0x40000
call fcn.0044f640
mov edi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov esi, eax
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov dword [esp], edi
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
jmp 0x450a4c
xor eax, eax
jmp 0x450f4b
mov eax, dword [ebp - 0x81c]
test eax, eax
je 0x451418
mov dword [esp], eax
call fcn.00570850
mov eax, dword [ebp - 0x820]
test eax, eax
je 0x45142a
mov dword [esp], eax
call fcn.00570850
mov eax, dword [ebp - 0x834]
test eax, eax
je 0x45143c
mov dword [esp], eax
call fcn.00570850
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp dword [0x678a20], 0
jne 0x450a88
mov eax, 0x40000
call fcn.0044f640
mov edi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov esi, eax
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov dword [esp], edi
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
mov dword [esp + 4], esi
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
jmp 0x450a5c
cmp dword [0x678a20], 0
jne 0x450a88
mov eax, 0x40000
call fcn.0044f640
mov edi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov esi, eax
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov dword [esp], edi
call fcn.004c1a60
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00432f50
jmp 0x45113a
jmp 0x572f01
call fcn.00573100
call fcn.00573100
call fcn.00573100
call fcn.00573100
call fcn.00573100
mov esi, eax
jmp 0x572ded
call fcn.00573100
mov esi, eax
jmp 0x572dd6
call fcn.00573100
nop
lea ecx, [ebx + 0x40044]
call fcn.004c9d20
lea ecx, [ebx + 0x40028]
call fcn.004c9570
lea ecx, [ebx + 0x4000c]
call fcn.004c9570
mov dword [esp], esi
call fcn.004a4100
nop
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], esi
call fcn.004a4100
lea ecx, [ebx + 0x94]
call fcn.004c9d20
lea ecx, [ebx + 0x78]
call fcn.004c9d20
mov ecx, dword [ebp - 0xb4]
call fcn.004c9e90
mov dword [esp], esi
call fcn.004a4100
nop
lea ecx, [ebp - 0xa0]
call fcn.004c9d20
lea ecx, [ebx + 0x94]
call fcn.004c9d20
lea ecx, [ebx + 0x78]
call fcn.004c9d20
mov ecx, dword [ebp - 0xb0]
call fcn.004c9e90
mov dword [esp], esi
call fcn.004a4100
lea ecx, [ebp - 0xa0]
call fcn.004c7130
jmp 0x572f93