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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d67ee
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
push ebx
push esi
push edi
mov eax, dword [0x51b260]
xor eax, esp
push eax
lea eax, [esp + 0xe8]
mov dword fs:[0], eax
mov dword [esp + 0x14], ecx
xor esi, esi
or edi, 0xffffffff
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xf0], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xf0], 1
mov dword [esp + 0x70], 0x4dc264
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], esi
call fcn.00457cf0
mov ebx, dword [ebp + 0xc]
mov byte [esp + 0xf0], 2
cmp dword [ebx + 0xd4], esi
je 0x422ef1
mov ecx, dword [ebx + 0x244]
sub ecx, dword [ebx + 0x240]
mov eax, dword [ebx + 0x9c]
sar ecx, 2
mov dword [esp + 0x24], eax
cmp eax, ecx
jb 0x422d6b
call fcn.0049eacd
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x240]
mov eax, dword [edx + eax*4]
cmp dword [eax + 8], edi
jne 0x422d94
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x422d8a
push eax
call fcn.0048dd02
add esp, 4
mov ecx, dword [esp + 0x28]
push ecx
jmp 0x422f07
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x104], esi
mov dword [esp + 0x10], esi
jle 0x422ef1
jmp 0x422db0
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xbc
call fcn.0041f760
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xd4]
add eax, 0xbc
mov eax, dword [eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x98], edx
test edi, edi
je 0x422df9
cmp edi, eax
je 0x422dfe
call fcn.0049eacd
cmp esi, dword [esp + 0x98]
je 0x422ed6
jmp 0x422e10
test edi, edi
jne 0x422e9f
call fcn.0049eacd
cmp esi, dword [edi + 0x18]
jne 0x422e27
call fcn.0049eacd
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x58], edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
cmp eax, dword [ebx]
je 0x422f33
lea ecx, [esp + 0x1c]
call fcn.0041a2f0
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xd4]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x41], 0
mov dword [esp + 0x18], ecx
jne 0x422eaf
mov ecx, dword [esp + 0x10]
cmp ecx, dword [eax + 0xc]
jge 0x422ea6
mov dword [esp + 0x18], eax
mov eax, dword [eax]
jmp 0x422ea9
mov edi, dword [edi]
jmp 0x422e1d
mov eax, dword [eax + 8]
cmp byte [eax + 0x41], 0
je 0x422e92
mov edi, dword [esp + 0x1c]
lea eax, [edx + 0xbc]
mov eax, dword [eax]
test edi, edi
je 0x422ec3
cmp edi, eax
je 0x422ec8
call fcn.0049eacd
mov esi, dword [esp + 0x20]
cmp esi, dword [esp + 0x18]
jne 0x422e10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, dword [ecx + 0x104]
mov dword [esp + 0x10], eax
jl 0x422db0
xor esi, esi
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x422f02
push eax
call fcn.0048dd02
add esp, 4
mov eax, dword [esp + 0x28]
push eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
call fcn.0048dd02
add esp, 4
mov ecx, dword [esp + 0xe8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor edi, edi
cmp dword [ebx + 0x1e4], edi
jle 0x42317c
mov dword [esp + 0x10], edi
jmp 0x422f50
cmp dword [ebx + 0xb0], 0
mov eax, 0x2aaaaaab
jne 0x422f87
mov ecx, dword [ebx + 0xe8]
sub ecx, dword [ebx + 0xe4]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x422f7f
call fcn.0049eacd
mov ecx, dword [ebx + 0xe4]
jmp 0x422fae
mov ecx, dword [ebx + 0x100]
sub ecx, dword [ebx + 0xfc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x422fa8
call fcn.0049eacd
mov ecx, dword [ebx + 0xfc]
add ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x2c]
call fcn.0040e1a0
cmp dword [ebx + 0xb4], 0
je 0x422fcb
cmp dword [ebp + 0x14], 1
jne 0x422ff7
cmp dword [ebx + 0xb0], 0
jne 0x422ff7
mov edx, dword [ebx + 0x130]
sub edx, dword [ebx + 0x12c]
sar edx, 2
cmp edi, edx
jb 0x422fec
call fcn.0049eacd
mov eax, dword [ebx + 0x12c]
mov esi, dword [eax + edi*4]
jmp 0x423018
mov ecx, dword [ebx + 0x1d8]
sub ecx, dword [ebx + 0x1d4]
sar ecx, 2
cmp edi, ecx
jb 0x42300f
call fcn.0049eacd
mov edx, dword [ebx + 0x1d4]
mov esi, dword [edx + edi*4]
cmp dword [ebx + 0xd4], 0
jne 0x42304b
cmp dword [ebx + 0x1e8], 1
jne 0x42304b
mov eax, dword [ebx + 0x1d8]
sub eax, dword [ebx + 0x1d4]
sar eax, 2
cmp edi, eax
jb 0x423042
call fcn.0049eacd
mov ecx, dword [ebx + 0x1d4]
mov esi, dword [ecx + edi*4]
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x34]
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x42306d
call fcn.0049eacd
mov edx, dword [esp + 0x34]
lea ecx, [esi + esi*8]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [edx]
lea ecx, [esp + 0x74]
call eax
mov edx, dword [esp + 0x78]
cmp edx, 0xffffffff
je 0x423132
cmp edx, 0xffffd8f1
je 0x423132
cmp dword [ebx + 0xb4], 0
je 0x4230c3
cmp dword [ebp + 0x14], 1
je 0x4230c3
push edi
lea ecx, [ebx + 0x1b0]
call fcn.0041a1d0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x78]
jmp 0x4230ce
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
mov esi, dword [ebp + 8]
push eax
push ecx
push edx
mov ecx, esi
call fcn.0040ee90
mov ecx, dword [esp + 0x78]
push 0
push ecx
mov ecx, esi
call fcn.0040fe70
mov esi, eax
test esi, esi
je 0x423132
cmp dword [ebp + 0x10], 0
je 0x423128
mov edx, dword [esp + 0x80]
mov dword [esi + 0x50], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esi + 0x10]
lea eax, [esi + 0x4c]
mov dword [eax], ecx
add edx, dword [esp + 0x7c]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x54], edx
add ecx, dword [esp + 0x80]
push eax
mov dword [esi + 0x58], ecx
mov ecx, dword [ebp + 0x10]
call fcn.00406970
mov ecx, dword [esp + 0x14]
push esi
call fcn.00421250
mov edx, dword [ebx + 0x160]
sub edx, dword [ebx + 0x15c]
sar edx, 2
cmp edx, edi
jbe 0x42316a
mov eax, dword [ebx + 0x160]
sub eax, dword [ebx + 0x15c]
sar eax, 2
cmp edi, eax
jb 0x42315d
call fcn.0049eacd
mov ecx, dword [ebx + 0x15c]
mov dword [ecx + edi*4], 0xffffffff
add dword [esp + 0x10], 0x18
inc edi
cmp edi, dword [ebx + 0x1e4]
jl 0x422f50
mov eax, dword [ebx + 0x118]
sub eax, dword [ebx + 0x114]
mov dword [esp + 0x18], 0
sar eax, 2
mov dword [esp + 0x94], eax
test eax, eax
jle 0x423374
jmp 0x4231b0
mov esi, dword [ebp + 0xc]
mov edx, dword [esi + 0x118]
sub edx, dword [esi + 0x114]
mov edi, dword [esp + 0x18]
sar edx, 2
cmp edi, edx
jb 0x4231cf
call fcn.0049eacd
mov eax, dword [esi + 0x114]
mov eax, dword [eax + edi*4]
mov ecx, dword [ebp + 8]
push eax
mov dword [esp + 0xa0], eax
call fcn.0040fc90
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x104], 0
mov dword [esp + 0x10], 0
jle 0x42335e
mov ebx, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0xe0]
add ebx, 0xbc
push eax
mov ecx, ebx
call fcn.0041f760
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov ebx, dword [ebx + 0x18]
add eax, 0xbc
mov eax, dword [eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
test edi, edi
je 0x423242
cmp edi, eax
je 0x423247
call fcn.0049eacd
cmp esi, ebx
je 0x423345
nop
test edi, edi
jne 0x4232d9
call fcn.0049eacd
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x423269
call fcn.0049eacd
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
cmp eax, dword [esp + 0x9c]
jne 0x4232dd
mov ebx, dword [esp + 0x14]
push esi
push edi
lea edx, [esp + 0xdc]
push edx
lea ecx, [ebx + 0xbc]
call fcn.00420a00
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
jmp 0x4232f2
mov eax, dword [edi]
jmp 0x42325f
lea ecx, [esp + 0x1c]
call fcn.0041a2f0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xd4]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x41], 0
mov dword [esp + 0x24], ecx
jne 0x423326
mov ecx, dword [esp + 0x10]
lea esp, [esp]
cmp ecx, dword [eax + 0xc]
jge 0x42331d
mov dword [esp + 0x24], eax
mov eax, dword [eax]
jmp 0x423320
mov eax, dword [eax + 8]
cmp byte [eax + 0x41], 0
je 0x423310
lea eax, [ebx + 0xbc]
mov eax, dword [eax]
test edi, edi
je 0x423336
cmp edi, eax
je 0x42333b
call fcn.0049eacd
cmp esi, dword [esp + 0x24]
jne 0x423250
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, dword [ecx + 0x104]
mov dword [esp + 0x10], eax
jl 0x423201
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x94]
mov dword [esp + 0x18], eax
jl 0x4231b0
mov eax, dword [esp + 0x34]
xor esi, esi
cmp eax, esi
je 0x423387
push eax
call fcn.0048dd02
add esp, 4
mov edx, dword [esp + 0x28]
push edx
jmp 0x422f07