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

Disassembly:
push 0xffffffffffffffff
push 0x4e7a6f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d4
mov al, byte [esp + 7]
push ebx
push ebp
push esi
mov ebx, ecx
xor esi, esi
push edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x18], al
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
push ebx
lea ecx, [esp + 0x40]
mov dword [esp + 0x1f0], esi
call fcn.00453d70
push 5
mov ecx, ebx
mov byte [esp + 0x1f0], 1
call fcn.004541f0
lea ecx, [esp + 0x90]
mov byte [esp + 0x40], al
call fcn.0046ec80
mov cl, byte [esp + 0x17]
push esi
mov byte [esp + 0x30], cl
lea ecx, [esp + 0x30]
mov byte [esp + 0x1f0], 2
call fcn.004019e0
mov edi, 0x512a68
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x30]
push ebp
call fcn.00401d50
test al, al
je 0x4053bd
mov edi, dword [esp + 0x30]
mov ecx, ebp
mov edx, ecx
mov esi, 0x512a68
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
call fcn.00401d30
xor esi, esi
mov al, byte [esp + 0x17]
push esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1f0], 3
mov byte [esp + 0x54], al
call fcn.004019e0
cmp word [ebx + 4], si
mov byte [esp + 0x1ec], 4
mov dword [esp + 0x48], esi
jle 0x405c77
lea ecx, [esp + 0x10]
call fcn.00453d60
mov edi, 0x512a68
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x1f0], 5
mov ebp, ecx
lea ecx, [esp + 0x30]
push ebp
call fcn.00401d50
test al, al
je 0x405442
mov edi, dword [esp + 0x30]
mov ecx, ebp
mov edx, ecx
mov esi, 0x512a68
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
call fcn.00401d30
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x60]
push eax
push ecx
lea ecx, [ebx + 8]
call fcn.004641a0
mov esi, eax
lea edx, [esp + 0x18]
mov byte [esp + 0x1ec], 6
cmp edx, esi
je 0x40557e
mov eax, dword [esi + 4]
xor ebp, ebp
cmp eax, ebp
jne 0x405477
xor edi, edi
jmp 0x40547f
mov edi, dword [esi + 8]
sub edi, eax
sar edi, 2
lea ecx, [esp + 0x18]
call fcn.00403ff0
cmp edi, eax
ja 0x4054c7
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
call fcn.00408c70
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00404010
mov ecx, esi
call fcn.00403ff0
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax*4]
mov dword [esp + 0x20], eax
jmp 0x405580
lea ecx, [esp + 0x18]
call fcn.00403fd0
mov ecx, esi
mov edi, eax
call fcn.00403ff0
cmp eax, edi
ja 0x405525
mov edi, dword [esi + 4]
lea ecx, [esp + 0x18]
call fcn.00403ff0
mov ecx, dword [esp + 0x1c]
lea edi, [edi + eax*4]
mov eax, dword [esi + 4]
push ecx
push edi
push eax
call fcn.00408c70
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 8]
add esp, 0xc
lea ecx, [esp + 0x18]
push edx
push eax
push edi
call fcn.00404040
mov ecx, esi
call fcn.00403ff0
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + eax*4]
mov dword [esp + 0x20], edx
jmp 0x405580
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00404010
mov edx, dword [esp + 0x1c]
push edx
call fcn.004db420
add esp, 4
mov ecx, esi
call fcn.00403ff0
cmp eax, ebp
jge 0x405552
xor eax, eax
shl eax, 2
push eax
call fcn.004dbc04
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov esi, dword [esi + 4]
push eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00404040
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
jmp 0x405580
xor ebp, ebp
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
cmp esi, edi
mov byte [esp + 0x1ec], 5
je 0x4055a7
push ebp
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x405594
mov esi, dword [esp + 0x64]
push esi
call fcn.004db420
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
je 0x405bde
mov ecx, dword [esp + 0x20]
sub ecx, eax
sar ecx, 2
cmp ecx, 4
jb 0x405bde
lea edx, [esp + 0x90]
push 1
push edx
push 1
lea ecx, [esp + 0x24]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00453d70
mov ecx, dword [esp + 0x200]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 1
push 1
lea ecx, [esp + 0x20]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.00453d70
mov ecx, dword [0x512d20]
call fcn.0046e6b0
sub esp, 0x24
lea ecx, [esp + 0xb4]
mov dword [esp + 0x4c], esp
mov esi, esp
push ecx
mov ecx, esi
mov dword [esp + 0x50], esi
call fcn.004080f0
lea edx, [esp + 0xc4]
lea ecx, [esi + 0x10]
push edx
mov byte [esp + 0x214], 7
call fcn.00405d60
mov ecx, dword [0x512d20]
mov byte [esp + 0x210], 5
call fcn.0046e5e0
push ecx
lea ecx, [esp + 0x94]
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0046f1a0
lea ecx, [esp + 0x14]
call fcn.00454080
lea ecx, [esp + 0x10]
call fcn.00454280
test ax, ax
jg 0x4056c2
mov edi, 0x507350
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x507350
lea ecx, [esp + 0x34]
call fcn.00404080
jmp 0x405aea
mov ecx, dword [esp + 0x1c]
push ebp
add ecx, 8
call fcn.004541f0
mov edx, dword [esp + 0x1c]
cmp al, 0xff
lea ecx, [edx + 4]
jne 0x40584a
call fcn.00454280
mov ecx, dword [esp + 0x1c]
mov edi, eax
push 0xffffffffffffffff
lea eax, [esp + 0xe8]
push ebp
push eax
add ecx, 0xc
call fcn.004542d0
lea esi, [esp + 0xe4]
mov eax, str.HexBytestoStr
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40572c
test cl, cl
je 0x405728
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40572c
add eax, 2
add esi, 2
test cl, cl
jne 0x405708
xor eax, eax
jmp 0x405731
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4057a1
lea ecx, [esp + 0x10]
call fcn.00454280
movsx esi, di
movsx edi, ax
cmp esi, edi
jge 0x405aea
push esi
lea ecx, [esp + 0x14]
call fcn.004541f0
push eax
lea eax, [esp + 0xb8]
push eax
mov ecx, ebx
call fcn.00405f50
mov ecx, dword [0x4f4164]
mov byte [esp + 0x1ec], 8
push ecx
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.00408260
push 1
lea ecx, [esp + 0xb8]
mov byte [esp + 0x1f0], 5
call fcn.004019e0
inc esi
cmp esi, edi
jl 0x40574c
jmp 0x405aea
lea esi, [esp + 0xe4]
mov eax, str.ASCIItoStr
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4057d1
test cl, cl
je 0x4057cd
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4057d1
add eax, 2
add esi, 2
test cl, cl
jne 0x4057ad
xor eax, eax
jmp 0x4057d6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405aea
lea ecx, [esp + 0x10]
call fcn.00454280
movsx esi, di
movsx edi, ax
cmp esi, edi
jge 0x405aea
push esi
lea ecx, [esp + 0x14]
call fcn.004541f0
push eax
lea eax, [esp + 0xc8]
push eax
mov ecx, ebx
call fcn.00405e30
mov ecx, dword [0x4f4164]
mov byte [esp + 0x1ec], 9
push ecx
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.00408260
push 1
lea ecx, [esp + 0xc8]
mov byte [esp + 0x1f0], 5
call fcn.004019e0
inc esi
cmp esi, edi
jl 0x4057f5
jmp 0x405aea
call fcn.00454280
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
lea eax, [esp + 0xe8]
push ebp
push eax
add ecx, 0xc
call fcn.004542d0
lea esi, [esp + 0xe4]
mov eax, str.HexBytestoStr
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x405896
test cl, cl
je 0x405892
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x405896
add eax, 2
add esi, 2
test cl, cl
jne 0x405872
xor eax, eax
jmp 0x40589b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40595e
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 8]
call fcn.00454280
push 2
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00453d70
mov ecx, ebx
call fcn.00406090
lea ecx, [esp + 0x10]
mov esi, eax
call fcn.00454280
movsx edx, si
movsx ecx, ax
inc edx
cmp ecx, edx
jl 0x405aea
movsx edi, di
xor esi, esi
test edi, edi
jle 0x405aea
mov eax, dword [esp + 0x1c]
push esi
lea ecx, [eax + 8]
call fcn.004541f0
xor cx, cx
mov cl, al
push ecx
lea ecx, [esp + 0x14]
call fcn.004541f0
lea edx, [esp + 0xd4]
push eax
push edx
mov ecx, ebx
call fcn.00405f50
mov ecx, dword [0x4f4164]
mov byte [esp + 0x1ec], 0xa
push ecx
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.00408260
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x1f0], 5
call fcn.004019e0
inc esi
cmp esi, edi
jl 0x4058f7
jmp 0x405aea
lea esi, [esp + 0xe4]
mov eax, str.ASCIItoStr
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40598e
test cl, cl
je 0x40598a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40598e
add eax, 2
add esi, 2
test cl, cl
jne 0x40596a
xor eax, eax
jmp 0x405993
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405aea
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 8]
call fcn.00454280
push 2
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00453d70
mov ecx, ebx
call fcn.00406090
lea ecx, [esp + 0x10]
mov esi, eax
call fcn.00454280
movsx edx, si
movsx ecx, ax
inc edx
cmp ecx, edx
jl 0x405aea
movsx ecx, di
xor eax, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
mov dword [esp + 0x4c], eax
jle 0x405aea
xor edi, edi
push eax
mov eax, dword [esp + 0x20]
lea ecx, [eax + 8]
call fcn.004541f0
xor cx, cx
mov cl, al
push ecx
lea ecx, [esp + 0x14]
call fcn.004541f0
lea edx, [esp + 0x70]
push eax
push edx
mov ecx, ebx
call fcn.00405e30
mov esi, eax
mov ecx, dword [0x4f4164]
mov eax, dword [esi + 8]
mov ebp, ecx
mov byte [esp + 0x1ec], 0xb
cmp eax, ebp
jae 0x405a3d
mov ebp, eax
sub ecx, dword [esp + 0x34]
cmp ecx, ebp
ja 0x405a4a
call fcn.004db42b
cmp ebp, edi
jbe 0x405a96
mov eax, dword [esp + 0x34]
push 0
lea ecx, [esp + 0x30]
lea ebx, [eax + ebp]
push ebx
call fcn.00401d50
test al, al
je 0x405a96
mov esi, dword [esi + 4]
test esi, esi
jne 0x405a71
mov esi, 0x4f4178
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
push ebx
lea edi, [edx + ecx]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
call fcn.00401d30
mov eax, dword [esp + 0x74]
xor edi, edi
cmp eax, edi
mov byte [esp + 0x1ec], 5
je 0x405ac5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x405abc
cmp al, 0xff
je 0x405abc
dec al
mov byte [ecx], al
jmp 0x405ac5
push ecx
call fcn.004db420
add esp, 4
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
inc eax
cmp eax, ecx
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x4c], eax
jl 0x4059f9
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.00405160
test eax, eax
jne 0x405b82
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50732c
call fcn.00453e00
lea edx, [esp + 0x84]
push edx
call fcn.00464820
add esp, 8
mov ecx, dword [0x4f4164]
xor esi, esi
push ecx
push esi
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x1f8], 0xc
call fcn.004017e0
mov eax, dword [esp + 0x84]
mov byte [esp + 0x1ec], 5
cmp eax, esi
je 0x405b6d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x405b64
cmp al, 0xff
je 0x405b64
dec al
mov byte [ecx], al
jmp 0x405b6d
push ecx
call fcn.004db420
add esp, 4
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
mov ecx, dword [esp + 0x1f8]
lea edx, [esp + 0x2c]
push edx
push 1
mov eax, dword [ecx + 8]
push eax
call fcn.00408980
mov al, byte [esp + 0x40]
lea ecx, [esp + 0x3c]
inc al
mov byte [esp + 0x40], al
mov eax, dword [esp + 0x40]
push eax
push 5
call fcn.00454200
lea ecx, [esp + 0x10]
mov byte [esp + 0x1ec], 4
call fcn.00453ea0
mov eax, dword [esp + 0x48]
movsx ecx, word [ebx + 4]
inc eax
cmp eax, ecx
mov dword [esp + 0x48], eax
jge 0x405c77
jmp 0x4053ed
lea ecx, [esp + 0x10]
mov byte [esp + 0x1ec], 4
call fcn.00453ea0
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1f0], 3
call fcn.004019e0
push 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x1f0], 2
call fcn.004019e0
lea ecx, [esp + 0x90]
mov byte [esp + 0x1ec], 1
call fcn.0046ed80
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1ec], 0
call fcn.00453ea0
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
cmp esi, eax
mov dword [esp + 0x1ec], 0xffffffff
mov edi, eax
je 0x405c66
push ebp
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x405c53
mov esi, dword [esp + 0x1c]
push esi
call fcn.004db420
add esp, 4
xor ax, ax
jmp 0x405d45
mov ecx, dword [0x512d20]
call fcn.0046cfb0
mov eax, dword [esp + 0x54]
xor esi, esi
cmp eax, esi
je 0x405ca9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x405ca0
cmp al, 0xff
je 0x405ca0
dec al
mov byte [ecx], al
jmp 0x405ca9
push ecx
call fcn.004db420
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x54], esi
cmp eax, esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
je 0x405cda
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x405cd1
cmp al, 0xff
je 0x405cd1
dec al
mov byte [ecx], al
jmp 0x405cda
push ecx
call fcn.004db420
add esp, 4
xor eax, eax
lea ecx, [esp + 0x90]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov byte [esp + 0x1ec], 1
call fcn.0046ed80
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1ec], 0
call fcn.00453ea0
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
cmp esi, eax
mov dword [esp + 0x1ec], 0xffffffff
mov edi, eax
je 0x405d38
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x405d26
mov esi, dword [esp + 0x1c]
push esi
call fcn.004db420
add esp, 4
mov ax, 1
mov ecx, dword [esp + 0x1e4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1e0
ret 8