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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x40f054]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov ebx, dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x39], al
lea edi, [ebp - 0x2c]
mov byte [ebp - 0x2d], al
push 6
pop ecx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], esi
stosw word es:[edi], ax
xor eax, eax
lea edi, [ebp - 0x10]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
cmp esi, 1
je 0x406226
xor edi, edi
xor eax, eax
inc edi
mov esi, eax
cmp dword [ebp - 0x40], edi
jle 0x406075
mov dword [ebp - 0x4c], 0x19
mov ecx, dword [edx + edi*4]
movzx eax, word [ecx]
cmp eax, 0x2d
je 0x405a4d
cmp eax, 0x2f
jne 0x4061a2
movzx eax, word [ecx + 2]
mov edx, eax
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x38]
test ax, ax
je 0x405a6a
xor eax, eax
cmp word [ecx + 4], ax
jne 0x4061a2
mov eax, dword [ebp - 0x34]
movzx ecx, ax
lea eax, [ecx - 0x61]
cmp ax, word [ebp - 0x4c]
ja 0x405a89
push dword [ebp - 0x34]
call dword [sym.imp.msvcrt.dll_towupper]
mov edx, dword [ebp - 0x38]
pop ecx
movzx ecx, ax
movzx eax, cx
mov dword [ebp - 0x44], eax
cmp cx, 0x41
jb 0x405aa3
cmp cx, 0x5a
ja 0x405aa3
add eax, 0xffffffd0
movzx eax, ax
jmp 0x405aba
lea eax, [ecx - 0x30]
movzx edx, ax
mov dword [ebp - 0x34], edx
push 9
pop edx
cmp ax, dx
mov edx, dword [ebp - 0x38]
ja 0x405aff
mov eax, dword [ebp - 0x34]
movzx eax, ax
mov dword [ebp - 0x34], eax
lea eax, [ecx - 0x41]
cmp ax, word [ebp - 0x4c]
ja 0x405ade
movzx eax, cx
cmp byte [ebp + eax - 0x6d], 0
jne 0x4061a5
mov byte [ebp + eax - 0x6d], 1
jmp 0x405ae4
mov eax, dword [ebp - 0x44]
movzx eax, ax
push 9
pop ecx
cmp word [ebp - 0x34], cx
ja 0x405b09
cmp byte [ebp + eax - 0x40], 0
jne 0x4061a5
mov byte [ebp + eax - 0x40], 1
jmp 0x405b09
cmp cx, 0x24
jne case.0x405b23.37
mov eax, dword [edx + edi*4]
movzx eax, word [eax + 2]
add eax, 0xffffffdc
cmp eax, 0x56
ja case.0x405b23.37
movzx eax, byte [eax + 0x406327]
jmp dword [eax*4 + 0x4062af]
mov byte [ebx + 0x37], 1
jmp 0x406061
mov byte [ebx + 0x38], 1
jmp 0x406061
xor eax, eax
mov byte [ebx + 0x31], al
jmp 0x406063
xor eax, eax
mov byte [ebx + 0x2f], al
cmp byte [ebp - 0x2d], al
jne 0x406063
mov dword [ebx + 0x74], 1
jmp 0x406063
mov byte [ebx + 0x36], 1
jmp 0x406061
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x405bd5
cmp dword [edx + edi*4], 0
je 0x405bd5
push dword [edx + edi*4]
call dword [sym.imp.msvcrt.dll__wtoi]
mov edx, dword [ebp - 0x38]
mov dword [ebx + 0x6c], eax
pop ecx
test eax, eax
jne 0x406061
mov eax, dword [edx + edi*4]
mov ecx, 0x401584
mov dx, word [eax]
cmp dx, word [ecx]
mov edx, dword [ebp - 0x38]
jne 0x405bc8
cmp word [eax], 0
je 0x405bc4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
mov word [ebp - 0x32], dx
mov edx, dword [ebp - 0x38]
jne 0x405bc8
add eax, 4
add ecx, 4
cmp word [ebp - 0x32], 0
jne 0x405b95
xor eax, eax
jmp 0x405bcd
sbb eax, eax
or eax, 1
test eax, eax
je 0x406061
push 0x52
jmp 0x40621d
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061ac
mov eax, dword [edx + edi*4]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4061ac
movzx eax, word [eax]
test ax, ax
je 0x405c24
mov ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_iswdigit]
pop ecx
test eax, eax
je 0x4061ac
mov eax, dword [ebp - 0x34]
add eax, 2
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x405bfe
mov edx, dword [ebp - 0x38]
push dword [edx + edi*4]
call dword [sym.imp.msvcrt.dll__wtoi]
mov dword [0x412930], eax
pop ecx
test eax, eax
jle 0x4061ac
mov dword [0x41292c], 0x412930
mov edx, dword [ebp - 0x38]
jmp 0x406061
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061b0
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x14], eax
jmp 0x406061
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061b4
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x68], eax
jmp 0x406061
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061b8
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x18], eax
jmp 0x406061
mov byte [ebx + 8], 1
jmp 0x406061
push 0x26
push 1
call fcn.004063f7
pop ecx
pop ecx
jmp 0x405c45
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061bc
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x1c], eax
mov ecx, dword [edx + edi*4]
call fcn.0040e136
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x4061d1
jmp 0x405c45
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061c0
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x20], eax
jmp 0x406061
inc edi
cmp edi, dword [ebp - 0x40]
jge 0x4061c8
mov eax, dword [edx + edi*4]
test eax, eax
je 0x4061c8
xor ecx, ecx
cmp word [eax], cx
je 0x4061c8
push 0x401588
push eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x405d22
mov edx, dword [ebp - 0x38]
mov dword [ebx + 0x5c], eax
jmp 0x406063
mov eax, dword [ebp - 0x38]
push 0x401594
push dword [eax + edi*4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x405d45
mov dword [ebx + 0x5c], 1
jmp 0x405c45
mov eax, dword [ebp - 0x38]
push 0x4015a8
push dword [eax + edi*4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x4061c4
mov dword [ebx + 0x5c], 2
jmp 0x405c45
lea eax, [edi + 2]
cmp eax, dword [ebp - 0x40]
jge 0x4061d5
mov ecx, dword [edx + edi*4 + 4]
test ecx, ecx
je 0x4061d5
xor eax, eax
cmp word [ecx], ax
je 0x4061d5
call fcn.0040e136
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4061d1
mov ecx, eax
call fcn.00406384
mov ecx, eax
call fcn.0040e136
mov ecx, dword [ebp - 0x34]
mov dword [ebx + 0x60], eax
test eax, eax
je 0x4061cc
call fcn.0040e0b1
mov eax, dword [ebp - 0x38]
add edi, 2
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x4061d5
call fcn.0040e136
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4061d1
mov ecx, eax
call fcn.00406384
mov ecx, eax
call fcn.0040e136
mov ecx, dword [ebp - 0x34]
mov dword [ebx + 0x64], eax
test eax, eax
je 0x4061cc
call fcn.0040e0b1
jmp 0x405c45
xor eax, eax
inc edi
mov dword [ebp - 0x34], eax
cmp edi, dword [ebp - 0x40]
jge 0x4061d9
mov ecx, dword [edx + edi*4]
test ecx, ecx
je 0x4061d9
cmp word [ecx], ax
je 0x4061d9
lea edx, [ebp - 0x34]
call fcn.0040675a
mov esi, eax
test esi, esi
jne 0x406184
mov ecx, dword [ebp - 0x34]
mov dword [ebx + 0x24], ecx
jmp 0x405c45
xor eax, eax
inc edi
mov dword [ebp - 0x34], eax
cmp edi, dword [ebp - 0x40]
jge 0x4061dd
mov ecx, dword [edx + edi*4]
test ecx, ecx
je 0x4061dd
cmp word [ecx], ax
je 0x4061dd
lea edx, [ebp - 0x34]
call fcn.0040675a
mov esi, eax
test esi, esi
jne 0x406184
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x28], eax
jmp 0x405c45
mov byte [ebx + 0x32], 1
jmp 0x406061
xor eax, eax
mov byte [ebx + 0x34], al
jmp 0x406063
mov byte [ebx + 0x33], 1
jmp 0x406061
cmp byte [ebp - 0x39], 0
jne 0x4061e9
lea eax, [edi + 2]
cmp eax, dword [ebp - 0x40]
jge 0x4061e1
mov byte [ebx + 0x2d], 1
mov eax, dword [edx + edi*4 + 4]
mov byte [ebp - 0x39], 1
mov dword [ebx + 0x3c], eax
test eax, eax
je 0x406226
mov ecx, dword [edx + edi*4 + 4]
lea eax, [ecx + 2]
mov dword [ebp - 0x44], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x48]
jne 0x405eda
sub ecx, dword [ebp - 0x44]
add edi, 2
sar ecx, 1
mov dword [ebx + 0x40], ecx
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x4c], eax
test eax, eax
je 0x406226
mov ecx, dword [edx + edi*4]
lea eax, [ecx + 2]
mov dword [ebp - 0x44], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x48]
jne 0x405f08
sub ecx, dword [ebp - 0x44]
sar ecx, 1
mov dword [ebx + 0x50], ecx
jmp 0x406061
mov byte [ebx + 0x70], 1
mov byte [0x412664], 1
jmp 0x406061
cmp byte [ebp - 0x39], 0
jne 0x4061e9
lea eax, [edi + 3]
cmp eax, dword [ebp - 0x40]
jge 0x4061e5
mov eax, dword [edx + edi*4 + 4]
mov byte [ebp - 0x39], 1
mov dword [ebx + 0x3c], eax
test eax, eax
je 0x406226
mov ecx, dword [edx + edi*4 + 4]
lea eax, [ecx + 2]
mov dword [ebp - 0x44], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x48]
jne 0x405f64
sub ecx, dword [ebp - 0x44]
sar ecx, 1
mov dword [ebx + 0x40], ecx
mov eax, dword [edx + edi*4 + 8]
mov dword [ebx + 0x44], eax
test eax, eax
je 0x406226
mov ecx, dword [edx + edi*4 + 8]
lea eax, [ecx + 2]
mov dword [ebp - 0x44], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x48]
jne 0x405f91
sub ecx, dword [ebp - 0x44]
add edi, 3
sar ecx, 1
mov dword [ebx + 0x48], ecx
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x4c], eax
test eax, eax
je 0x406226
mov ecx, dword [edx + edi*4]
lea eax, [ecx + 2]
mov dword [ebp - 0x44], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x48]
jne 0x405fbf
sub ecx, dword [ebp - 0x44]
jmp 0x405f17
mov byte [ebx + 0x2e], 1
jmp 0x406061
cmp byte [ebp - 0x2d], 0
jne 0x4061ed
mov dword [ebx + 0x74], 1
mov byte [ebp - 0x2d], 1
jmp 0x406061
cmp byte [ebp - 0x2d], 0
jne 0x4061ed
xor eax, eax
mov byte [ebp - 0x2d], 1
mov dword [ebx + 0x74], eax
jmp 0x406063
inc edi
cmp edi, dword [ebp - 0x40]
jg 0x406201
cmp dword [edx + edi*4], 0
je 0x406201
push dword [edx + edi*4]
call dword [sym.imp.msvcrt.dll__wtoi]
pop ecx
test eax, eax
jle 0x4061fa
cmp eax, 0x10
ja 0x4061f1
mov dword [ebx + 0x78], eax
jmp 0x405c45
inc edi
cmp edi, dword [ebp - 0x40]
jg 0x406208
xor eax, eax
cmp dword [edx + edi*4], eax
je 0x406208
mov byte [ebx + 0x7c], 1
mov eax, dword [edx + edi*4]
mov dword [ebx + 0x80], eax
xor eax, eax
inc edi
cmp edi, dword [ebp - 0x40]
jl 0x405a39
test esi, esi
jne 0x406184
push 0x57
pop edi
cmp dword [ebx + 0x14], eax
jne 0x40608c
push 0x18
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
xor eax, eax
cmp byte [ebx + 0x7c], 0
je 0x4060c8
cmp dword [ebx + 0x60], eax
jne 0x40609c
cmp dword [ebx + 0x64], eax
je 0x4060af
push 0x4015c0
push 0xb
push 1
call fcn.004063f7
add esp, 0xc
mov esi, edi
cmp byte [ebx + 0x38], 0
je 0x4060c8
push 0x4015c8
push 0xb
push 1
call fcn.004063f7
add esp, 0xc
mov esi, edi
xor eax, eax
cmp byte [ebx + 0x2f], al
jne 0x40622e
cmp dword [ebx + 0x1c], eax
je 0x4060e7
push 0x1a
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
xor eax, eax
cmp dword [ebx + 0x20], eax
je 0x4060f9
push 0x1b
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp dword [ebx + 0x5c], 0xffffffff
je 0x40610c
push 0x1c
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp byte [ebx + 0x32], 0
je 0x40611f
push 0x1e
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
xor eax, eax
cmp dword [ebx + 0x28], eax
je 0x406135
push 0x1f
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
xor eax, eax
cmp dword [ebx + 0x24], eax
je 0x406147
push 0x20
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp byte [ebx + 0x34], 0
jne 0x40615a
push 0x21
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp byte [ebx + 0x35], 0
je 0x40616d
push 0x22
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp byte [ebx + 0x31], 0
jne 0x406180
push 0x70
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
test esi, esi
je 0x40618f
push 0x26
push 1
call fcn.004063f7
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040e870
leave
ret 4
push ecx
jmp 0x40620d
push dword [edx + edi*4]
push 0x6d
jmp 0x40620f
push 0x7f
jmp 0x40621d
push 0xc
jmp 0x40621d
push 0x59
jmp 0x40621d
push 0xd
jmp 0x40621d
push 0xe
jmp 0x40621d
push 0xf
jmp 0x40621d
push 0x11
jmp 0x40621d
push 0x10
jmp 0x40621d
call fcn.0040e0b1
push 8
jmp 0x406228
push 0x12
jmp 0x40621d
push 0x13
jmp 0x40621d
push 0x1d
jmp 0x40621d
push 0x15
jmp 0x40621d
push 0x16
jmp 0x40621d
push 0x14
jmp 0x40621d
push 0x7d
jmp 0x40621d
push 0x10
push 0x82
jmp 0x40620f
push 0x84
jmp 0x40621d
push 0x81
jmp 0x40621d
push 0x4015b8
push 0xb
push 1
call fcn.004063f7
add esp, 0xc
jmp 0x406226
push 0x40
push 1
call fcn.004063f7
pop ecx
pop ecx
push 0x57
pop esi
jmp 0x406184
cmp dword [ebx + 0x20], eax
jne 0x40623b
mov eax, dword [section..data]
mov dword [ebx + 0x20], eax
cmp dword [ebx + 0x5c], 0xffffffff
jne 0x406248
mov dword [ebx + 0x5c], 2
cmp byte [ebx + 0x33], 0
je 0x40625b
push 0x25
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
xor eax, eax
cmp dword [ebx + 0x74], eax
jne 0x406267
cmp byte [ebp - 0x2d], al
je 0x406274
push 0x7b
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp dword [ebx + 0x78], 1
je 0x40628a
push 0x80
push 1
call fcn.004063f7
pop ecx
pop ecx
mov esi, edi
cmp byte [ebx + 0x7c], 0
je 0x406180
push 0x4015d0
push 0xb
push 1
call fcn.004063f7
add esp, 0xc
mov esi, edi
jmp 0x406184