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

Disassembly:
jmp 0x6687c0
sub esp, 0xb0
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xb4]
xor edx, edx
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 8], eax
push esi
mov esi, dword [esp + 0xc4]
mov ecx, esi
add ecx, dword [ebp + 0x68]
lea eax, [ebp + 0x68]
mov dword [esp + 0x30], ebp
adc edx, dword [eax + 4]
add ecx, 0xfffffffc
push edi
adc edx, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], edx
lea edx, [eax + 8]
push edx
push eax
lea eax, [esp + 0x80]
mov dword [esp + 0x64], ecx
lea ecx, [ebp + 0x5c]
push eax
call fcn.0040a619
cmp dword [ebp + 0x50], 0
je 0x668867
push esi
sub esp, 8
mov eax, esp
mov dword [eax], str.SectionLength
mov dword [eax + 4], 0xd
mov ecx, dword [ebp + 0x50]
call fcn.00408503
push dword [esp + 0x7c]
push dword [esp + 0x7c]
sub esp, 8
mov eax, esp
mov dword [eax], str.Vendor
mov dword [eax + 4], 6
mov ecx, dword [ebp + 0x50]
call fcn.0040837d
mov edi, dword [ebp + 8]
lea eax, [esp + 0xa4]
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x78]
push eax
call fcn.0040d8a0
mov ecx, eax
cmp dword [eax + 0x14], 0x10
jb 0x668888
mov ecx, dword [eax]
cmp dword [eax + 0x10], esi
jne 0x6688a0
push esi
push edi
push ecx
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x6688a0
xor bl, bl
jmp 0x6688a2
mov bl, 1
mov edx, dword [esp + 0xb8]
cmp edx, 0x10
jb 0x6688e0
mov ecx, dword [esp + 0xa4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x6688d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x6688d6
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.004036ca
add esp, 8
test bl, bl
je 0x668927
lea eax, [esp + 0x78]
mov word [esp + 0x1c], 0x503
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push eax
sub esp, 8
mov dword [esp + 0x20], str.unrecognized_vendor_name:
mov esi, esp
call fcn.00415dfc
mov dword [esi], 0x16
mov dword [esi + 4], eax
mov esi, dword [esp + 0x1c]
push esi
call fcn.0040e9bc
add esp, 0x10
mov eax, esi
jmp 0x668d78
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
cmp dword [ebp + 4], eax
ja 0x668d6e
jb 0x668947
mov eax, dword [esp + 0x5c]
cmp dword [ebp], eax
jae 0x668d6e
mov edi, dword [esp + 0x34]
nop dword [eax + eax]
lea eax, [ebp + 8]
push eax
push ebp
lea ecx, [edi + 0x5c]
call fcn.00406465
lea ecx, [ebp + 8]
mov byte [esp + 0x50], al
push ecx
push ebp
lea ecx, [edi + 0x5c]
call fcn.00413f75
cmp dword [edi + 0x70], 0
mov ebx, eax
mov dword [esp + 0x54], ebx
jne 0x668f6d
cmp dword [edi + 0x50], 0
je 0x668a48
lea eax, [esp + 0x14]
push 0xa0c488
push eax
call fcn.00405556
add esp, 8
push dword [eax + 4]
push dword [eax]
push dword [esp + 0x58]
sub esp, 8
mov eax, esp
mov dword [eax], 0x9534e8
mov dword [eax + 4], 3
mov ecx, dword [edi + 0x50]
call fcn.0040a420
mov ecx, dword [edi + 0x50]
call fcn.00411626
mov ecx, eax
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 4
jae 0x6689e4
push 4
push str.Size
call fcn.0041214d
mov ecx, eax
jmp 0x6689ef
mov eax, dword [str.Size]
mov dword [edx], eax
add dword [ecx + 0xc], 4
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x668a0c
push 2
push 0x924068
call fcn.0041214d
mov ecx, eax
jmp 0x668a19
mov ax, word [0x924068]
mov word [edx], ax
add dword [ecx + 0xc], 2
push ebx
call fcn.004046f6
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 1
jae 0x668a3e
push 1
push 0x92406c
mov ecx, edx
call fcn.0041214d
jmp 0x668a48
mov al, byte [0x92406c]
mov byte [esi], al
inc dword [edx + 0xc]
cmp ebx, 5
jb 0x668ea6
movzx esi, byte [esp + 0x50]
lea eax, [esp + 0xb0]
mov dword [esp + 0xa4], eax
xor ebx, ebx
mov eax, esi
mov dword [esp + 0x20], 0
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], 8
sub eax, 1
je 0x668adf
sub eax, 1
je 0x668ab9
sub eax, 1
jne 0x668d93
lea esi, [ebx + 0x10]
mov dword [esp + 0x20], str.Symbols
lea ebx, [eax + 7]
mov ecx, edi
lea eax, [esp + 0xa4]
mov ebp, str.SymbolAttributes
push eax
call fcn.0040f1e6
jmp 0x668ae9
mov esi, 0x11
mov dword [esp + 0x20], str.Sections
lea eax, [esp + 0xa4]
mov ecx, edi
push eax
mov ebp, str.SectionAttributes
lea ebx, [esi - 9]
call fcn.0040f1e6
jmp 0x668ae9
mov ebp, str.FileAttributes
mov esi, 0xe
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x668d13
mov dword [esp + 0x2c], ecx
call fcn.00411626
mov edi, eax
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub ecx, eax
cmp esi, ecx
jbe 0x668b1a
push esi
push ebp
mov ecx, edi
call fcn.0041214d
jmp 0x668b2c
test esi, esi
je 0x668b51
push esi
push ebp
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 0xc], esi
test esi, esi
je 0x668b51
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x668b49
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x668b55
mov byte [ecx], 0x20
inc dword [eax + 0xc]
jmp 0x668b55
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x668b6a
push 0x7b
mov ecx, eax
call fcn.0040c4b4
jmp 0x668b70
mov byte [ecx], 0x7b
inc dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x668b83
push 0xa
mov ecx, eax
call fcn.0040c4b4
jmp 0x668b89
mov byte [ecx], 0xa
inc dword [eax + 0xc]
inc dword [esi + 4]
cmp dword [esp + 0xa8], 0
je 0x668ca8
mov ebp, dword [esp + 0x34]
mov edi, dword [ebp + 0x50]
mov ecx, edi
call fcn.00411626
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub eax, ecx
cmp ebx, eax
jbe 0x668bc6
push ebx
push dword [esp + 0x24]
mov ecx, esi
call fcn.0041214d
mov esi, eax
jmp 0x668bdb
test ebx, ebx
je 0x668bdb
push ebx
push dword [esp + 0x24]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esi + 0xc], ebx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub eax, ecx
cmp eax, 3
jae 0x668bf8
push 3
push 0x953654
mov ecx, esi
call fcn.0041214d
jmp 0x668c0d
mov ax, word [0x953654]
mov word [ecx], ax
mov al, byte [0x953656]
mov byte [ecx + 2], al
add dword [esi + 0xc], 3
mov esi, dword [esp + 0xa4]
xor cl, cl
mov ebx, dword [esp + 0xa8]
add ebx, esi
cmp esi, ebx
je 0x668c7a
test cl, cl
je 0x668c51
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x668c44
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x668c51
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [edi]
mov cl, byte [esi]
mov byte [esp + 0x64], cl
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 8]
jb 0x668c6e
push dword [esp + 0x64]
mov ecx, eax
call fcn.0040c4b4
jmp 0x668c73
mov byte [edx], cl
inc dword [eax + 0xc]
inc esi
mov cl, 1
cmp esi, ebx
jne 0x668c23
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x668c97
push 2
push 0x925dbc
call fcn.0041214d
jmp 0x668ca4
mov ax, word [0x925dbc]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
add eax, 0xfffffffb
push eax
lea eax, [esp + 0x64]
mov ecx, edi
push eax
call fcn.0040fc40
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x668e5c
mov edx, dword [esi + 4]
mov ecx, esi
dec edx
test edx, edx
cmovg eax, edx
mov dword [esi + 4], eax
call fcn.00411626
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x668cf2
push 0x7d
mov ecx, eax
call fcn.0040c4b4
jmp 0x668cf8
mov byte [ecx], 0x7d
inc dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x668d0b
push 0xa
mov ecx, eax
call fcn.0040c4b4
jmp 0x668d33
mov byte [ecx], 0xa
inc dword [eax + 0xc]
jmp 0x668d33
mov eax, dword [esp + 0x54]
mov ecx, edi
add eax, 0xfffffffb
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040fc40
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x668e75
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0xb0]
cmp eax, ecx
je 0x668d4f
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [esp + 0x58]
lea ebp, [edi + 0x68]
cmp dword [ebp + 4], eax
ja 0x668d6e
jb 0x668950
mov eax, dword [esp + 0x5c]
cmp dword [ebp], eax
jb 0x668950
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0xb0
ret 8
mov edx, dword [ebp]
mov eax, esi
mov ecx, dword [ebp + 4]
add edx, 0xfffffffb
mov dword [esp + 0x64], edx
cdq
adc ecx, 0xffffffff
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
push eax
sub esp, 8
mov dword [esp + 0x74], ecx
mov word [esp + 0xa0], 0x103
mov esi, esp
mov dword [esp + 0x98], str._at_offset_0x
mov dword [esp + 0x3c], edx
mov word [esp + 0xac], 0x103
mov dword [esp + 0xa4], str.unrecognized_tag_0x
mov word [esp + 0x94], 0x10f
mov word [esp + 0x80], 0x10f
mov dword [esp + 0x20], str.unrecognized_tag_0x
mov word [esp + 0x28], 0xf03
mov dword [esp + 0x48], str._at_offset_0x
mov word [esp + 0x4c], 0x302
mov word [esp + 0x58], 0xf02
call fcn.00415dfc
mov dword [esi], 0x16
mov dword [esi + 4], eax
mov esi, dword [esp + 0x1c]
push esi
call fcn.0040e9bc
add esp, 0x10
jmp 0x668e83
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x60], 0
mov dword [esi], eax
call fcn.0040361b
jmp 0x668e83
mov esi, dword [esp + 0x10]
mov dword [esp + 0x28], 0
mov dword [esi], eax
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0xb0]
cmp eax, ecx
je 0x668e9f
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, esi
jmp 0x668d78
mov ecx, dword [ebp]
mov eax, dword [ebp + 4]
add ecx, 0xfffffffb
mov dword [esp + 0x2c], ecx
adc eax, 0xffffffff
mov word [esp + 0xa0], 0x103
mov dword [esp + 0x30], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push eax
sub esp, 8
mov dword [esp + 0xa4], str._at_offset_0x
mov word [esp + 0xa0], 0x103
mov esi, esp
mov dword [esp + 0x98], str.invalid_attribute_size
mov dword [esp + 0x7c], 0
mov word [esp + 0x80], 0x10f
mov word [esp + 0x94], 0x109
mov dword [esp + 0x50], str.invalid_attribute_size
mov dword [esp + 0x54], ebx
mov word [esp + 0x58], 0x903
mov dword [esp + 0x48], str._at_offset_0x
mov word [esp + 0x4c], 0x302
mov word [esp + 0x28], 0xf02
call fcn.00415dfc
mov dword [esi], 0x16
mov dword [esi + 4], eax
mov esi, dword [esp + 0x1c]
push esi
call fcn.0040e9bc
add esp, 0x10
mov eax, esi
jmp 0x668d78
mov ecx, dword [esp + 0x10]
mov dword [ecx], 0
mov eax, dword [edi + 0x70]
mov dword [ecx], eax
mov eax, ecx
mov dword [edi + 0x70], 0
jmp 0x668d78