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

Disassembly:
push 0xffffffffffffffff
push 0x4e9739
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x6c], 1
call fcn.00465530
lea ecx, [esp + 0x14]
mov byte [esp + 0x6c], 2
call fcn.00453d60
mov al, byte [esp + 0x78]
xor ebp, ebp
push ebp
lea ecx, [esp + 0x58]
mov byte [esp + 0x70], 3
mov byte [esp + 0x58], al
call fcn.004019e0
mov cl, byte [esp + 0x78]
mov dword [esp + 0x48], ebp
mov byte [esp + 0x44], cl
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov byte [esp + 0x6c], 5
mov byte [esp + 0x10], 0
push ecx
lea edx, [esp + 0x7c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00453d70
mov ecx, dword [0x512ac4]
call fcn.00465660
mov ecx, dword [esp + 0x80]
cmp ecx, ebp
je 0x4223d6
mov eax, dword [esp + 0x84]
sub eax, ecx
sar eax, 2
cmp ax, bp
jle 0x4223d6
xor esi, esi
movsx edi, ax
push esi
lea ecx, [esp + 0x80]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x18]
call fcn.00454080
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00453d70
mov ecx, dword [0x512ac4]
call fcn.004657a0
inc esi
dec edi
jne 0x422393
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [0x512ac4]
call fcn.00465c60
test al, al
je 0x422a48
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
push edx
push eax
push eax
call fcn.00408c70
mov ebx, dword [esp + 0x58]
mov edi, eax
add esp, 0xc
cmp edi, ebx
mov esi, edi
je 0x42241c
push ebp
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, ebx
jne 0x42240d
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], edi
cmp eax, ebp
jne 0x42242f
xor esi, esi
jmp 0x42243b
mov esi, dword [esp + 0x84]
sub esi, eax
sar esi, 2
xor ebx, ebx
cmp si, bp
jle 0x422495
xor edi, edi
push ebx
lea ecx, [esp + 0x3c]
call fcn.00465de0
test al, al
je 0x42248a
push edi
lea ecx, [esp + 0x80]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x18]
call fcn.00454080
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x14]
push eax
push 1
push ecx
lea ecx, [esp + 0x50]
call fcn.00408340
inc ebx
inc edi
cmp bx, si
jl 0x422444
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
cmp eax, ebp
je 0x4224a7
sub edi, eax
test edi, 0xfffffffc
jne 0x4224ed
cmp si, bp
jle 0x4224ed
xor edi, edi
movsx esi, si
push edi
lea ecx, [esp + 0x80]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x18]
call fcn.00454080
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x14]
push edx
push 1
push eax
lea ecx, [esp + 0x50]
call fcn.00408340
inc edi
dec esi
jne 0x4224b1
mov cl, byte [esp + 0x44]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x38], esp
mov byte [ebp], cl
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x422509
xor eax, eax
jmp 0x422512
mov eax, dword [esp + 0x5c]
sub eax, ecx
sar eax, 2
test eax, eax
jge 0x422518
xor eax, eax
lea edx, [eax*4]
push edx
call fcn.004dbc04
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
add esp, 4
mov esi, eax
cmp edi, ecx
mov ebx, ecx
mov dword [esp + 0x38], esi
je 0x422567
mov dword [esp + 0x34], esi
test esi, esi
mov byte [esp + 0x7c], 6
je 0x422554
push edi
mov ecx, esi
call fcn.00453d70
add edi, 4
add esi, 4
cmp edi, ebx
mov byte [esp + 0x7c], 5
mov dword [esp + 0x38], esi
jne 0x42253f
mov eax, dword [esp + 0x2c]
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
lea ecx, [eax + 8]
call fcn.00417080
mov eax, dword [esp + 0x48]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x18], edi
je 0x422590
mov edi, dword [esp + 0x4c]
sub edi, eax
sar edi, 2
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov byte [esp + 0x11], 0
jmp 0x4225a3
mov edi, dword [esp + 0x28]
push 0
lea edx, [esp + 0x16]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
push 0x512a68
call fcn.00415b10
sub esp, 0x10
lea eax, [esp + 0x37]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
push 0x512a68
mov byte [esp + 0x98], 7
call fcn.00415b10
mov ecx, dword [esp + 0x3c]
push edi
push ecx
mov ecx, dword [0x512ab8]
mov byte [esp + 0x98], 5
call fcn.00465fb0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
lea esi, [edx + eax]
cmp si, di
jle 0x422608
mov esi, edi
mov ebx, dword [esp + 0x48]
movsx eax, ax
test eax, eax
jle 0x422616
lea ebx, [ebx + eax*4]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 8]
call fcn.0041cb90
movsx eax, word [esp + 0x18]
movsx ecx, si
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
jge 0x4228bd
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ebx
call fcn.00453d70
lea ecx, [esp + 0x18]
call fcn.00454080
mov al, byte [esp + 0x11]
test al, al
je 0x42279f
mov ecx, dword [0x512ab8]
add ebx, 4
call fcn.00466610
cmp al, 1
je 0x422672
cmp al, 2
jne 0x422677
mov byte [esp + 0x11], 0
test al, al
jne 0x422834
lea ecx, [esp + 0x54]
lea edx, [esp + 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00453d70
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x24]
push eax
push ecx
lea ecx, [edx + 8]
call fcn.0041b340
test ax, ax
je 0x42295b
mov edi, 0x512a68
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x5c]
not ecx
dec ecx
mov ebp, ecx
mov ecx, eax
cmp eax, ebp
jb 0x4226d4
mov ecx, ebp
mov esi, dword [esp + 0x58]
mov edi, 0x512a68
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4226e8
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
jne 0x42273f
cmp eax, ebp
jb 0x42273f
cmp eax, ebp
setne dl
test edx, edx
jne 0x42273f
mov edi, 0x507350
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x58]
push ebp
call fcn.00401d50
test al, al
je 0x42273f
mov edi, dword [esp + 0x58]
mov ecx, ebp
mov eax, ecx
mov esi, 0x507350
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], ebp
mov byte [ecx + ebp], 0
push 0
push 0xffff
sub esp, 0x10
lea edx, [esp + 0x6c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
call fcn.004159f0
push ecx
lea eax, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
mov byte [esp + 0x8c], 0xa
call fcn.00453d70
mov ecx, dword [0x512ab8]
mov byte [esp + 0x88], 5
call fcn.00466120
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x42263a
jmp 0x4228bd
movsx eax, word [esp + 0x18]
mov esi, dword [esp + 0x24]
mov byte [esp + 0x10], 0
cmp eax, esi
mov byte [esp + 0x11], 1
jge 0x4228bd
sub esi, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push ebx
call fcn.00453d70
lea ecx, [esp + 0x18]
call fcn.00454080
push 0
push 0xffff
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x4c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push 6
push 0x5073b0
call fcn.00453e00
push edi
call fcn.00464820
add esp, 4
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x4c], esp
push edx
mov byte [esp + 0x8c], 8
call fcn.00453d70
mov ecx, dword [0x512ab8]
mov byte [esp + 0x88], 5
call fcn.00466120
add ebx, 4
dec esi
jne 0x4227bc
jmp 0x4228bd
cmp al, 3
je 0x4228bd
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
cmp eax, esi
jge 0x4228bd
sub esi, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push ebx
call fcn.00453d70
lea ecx, [esp + 0x18]
call fcn.00454080
push 0
push 0xffff
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x4c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push 6
push 0x5073b0
call fcn.00453e00
push edi
call fcn.00464820
add esp, 4
lea eax, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
mov byte [esp + 0x8c], 9
call fcn.00453d70
mov ecx, dword [0x512ab8]
mov byte [esp + 0x88], 5
call fcn.00466120
add ebx, 4
dec esi
jne 0x42284a
lea ecx, [esp + 0x2c]
push 0
lea edx, [esp + 0x1c]
push ecx
mov ecx, dword [0x512ab8]
push edx
call fcn.00466640
cmp ax, 0xb
je 0x42290a
mov al, byte [esp + 0x10]
test al, al
jne 0x42259f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x74]
mov eax, dword [ecx + 0xac]
push eax
push edx
call fcn.00422b30
test ax, ax
je 0x422916
mov byte [esp + 0x10], 1
jmp 0x42259f
mov byte [esp + 0x10], 0
xor ebp, ebp
jmp 0x422356
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x50737c
call fcn.00453e00
push ecx
mov byte [esp + 0x7c], 0xb
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x507374
call fcn.00453e00
mov ecx, 0x512ab0
mov byte [esp + 0x7c], 5
call fcn.004615f0
xor ebp, ebp
jmp 0x422356
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
cmp esi, edi
mov byte [esp + 0x6c], 4
je 0x42297e
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x42296c
mov esi, dword [esp + 0x48]
push esi
call fcn.004db420
mov eax, dword [esp + 0x5c]
add esp, 4
test eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
je 0x4229c4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4229bb
cmp al, 0xff
je 0x4229bb
dec al
mov byte [ecx], al
jmp 0x4229c4
push ecx
call fcn.004db420
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov byte [esp + 0x6c], 2
call fcn.00453ea0
lea ecx, [esp + 0x38]
mov byte [esp + 0x6c], 1
call fcn.00453ea0
lea ecx, [esp + 0x78]
mov byte [esp + 0x6c], 0
call fcn.00453ea0
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x422a37
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x422a22
mov esi, dword [esp + 0x80]
push esi
call fcn.004db420
add esp, 4
xor ax, ax
jmp 0x422b19
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
cmp esi, edi
mov byte [esp + 0x6c], 4
je 0x422a6b
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x422a59
mov esi, dword [esp + 0x48]
push esi
call fcn.004db420
mov eax, dword [esp + 0x5c]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
je 0x422aa5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x422a9c
cmp al, 0xff
je 0x422a9c
dec al
mov byte [ecx], al
jmp 0x422aa5
push ecx
call fcn.004db420
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov byte [esp + 0x6c], 2
call fcn.00453ea0
lea ecx, [esp + 0x38]
mov byte [esp + 0x6c], 1
call fcn.00453ea0
lea ecx, [esp + 0x78]
mov byte [esp + 0x6c], 0
call fcn.00453ea0
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x422b0c
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x422af7
mov esi, dword [esp + 0x80]
push esi
call fcn.004db420
add esp, 4
mov ax, 1
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x60
ret 0x1c