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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d83de
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
push ebx
push esi
push edi
mov eax, dword [0x51d260]
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], 0x4de284
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.0043abe0
mov ebx, dword [ebp + 0xc]
mov byte [esp + 0xf0], 2
cmp dword [ebx + 0xd4], esi
je 0x422d41
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 0x422bbb
call fcn.004a067d
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x240]
mov eax, dword [edx + eax*4]
cmp dword [eax + 8], edi
jne 0x422be4
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x422bda
push eax
call fcn.0048f8b2
add esp, 4
mov ecx, dword [esp + 0x28]
push ecx
jmp 0x422d57
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x104], esi
mov dword [esp + 0x10], esi
jle 0x422d41
jmp 0x422c00
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xbc
call fcn.0041f320
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 0x422c49
cmp edi, eax
je 0x422c4e
call fcn.004a067d
cmp esi, dword [esp + 0x98]
je 0x422d26
jmp 0x422c60
test edi, edi
jne 0x422cef
call fcn.004a067d
cmp esi, dword [edi + 0x18]
jne 0x422c77
call fcn.004a067d
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 0x422d83
lea ecx, [esp + 0x1c]
call fcn.00419da0
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 0x422cff
mov ecx, dword [esp + 0x10]
cmp ecx, dword [eax + 0xc]
jge 0x422cf6
mov dword [esp + 0x18], eax
mov eax, dword [eax]
jmp 0x422cf9
mov edi, dword [edi]
jmp 0x422c6d
mov eax, dword [eax + 8]
cmp byte [eax + 0x41], 0
je 0x422ce2
mov edi, dword [esp + 0x1c]
lea eax, [edx + 0xbc]
mov eax, dword [eax]
test edi, edi
je 0x422d13
cmp edi, eax
je 0x422d18
call fcn.004a067d
mov esi, dword [esp + 0x20]
cmp esi, dword [esp + 0x18]
jne 0x422c60
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, dword [ecx + 0x104]
mov dword [esp + 0x10], eax
jl 0x422c00
xor esi, esi
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x422d52
push eax
call fcn.0048f8b2
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.0048f8b2
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 0x422fcc
mov dword [esp + 0x10], edi
jmp 0x422da0
cmp dword [ebx + 0xb0], 0
mov eax, 0x2aaaaaab
jne 0x422dd7
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 0x422dcf
call fcn.004a067d
mov ecx, dword [ebx + 0xe4]
jmp 0x422dfe
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 0x422df8
call fcn.004a067d
mov ecx, dword [ebx + 0xfc]
add ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x2c]
call fcn.0040dd80
cmp dword [ebx + 0xb4], 0
je 0x422e1b
cmp dword [ebp + 0x14], 1
jne 0x422e47
cmp dword [ebx + 0xb0], 0
jne 0x422e47
mov edx, dword [ebx + 0x130]
sub edx, dword [ebx + 0x12c]
sar edx, 2
cmp edi, edx
jb 0x422e3c
call fcn.004a067d
mov eax, dword [ebx + 0x12c]
mov esi, dword [eax + edi*4]
jmp 0x422e68
mov ecx, dword [ebx + 0x1d8]
sub ecx, dword [ebx + 0x1d4]
sar ecx, 2
cmp edi, ecx
jb 0x422e5f
call fcn.004a067d
mov edx, dword [ebx + 0x1d4]
mov esi, dword [edx + edi*4]
cmp dword [ebx + 0xd4], 0
jne 0x422e9b
cmp dword [ebx + 0x1e8], 1
jne 0x422e9b
mov eax, dword [ebx + 0x1d8]
sub eax, dword [ebx + 0x1d4]
sar eax, 2
cmp edi, eax
jb 0x422e92
call fcn.004a067d
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 0x422ebd
call fcn.004a067d
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 0x422f82
cmp edx, 0xffffd8f1
je 0x422f82
cmp dword [ebx + 0xb4], 0
je 0x422f13
cmp dword [ebp + 0x14], 1
je 0x422f13
push edi
lea ecx, [ebx + 0x1b0]
call fcn.00419c80
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x78]
jmp 0x422f1e
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.0040eae0
mov ecx, dword [esp + 0x78]
push 0
push ecx
mov ecx, esi
call fcn.0040fac0
mov esi, eax
test esi, esi
je 0x422f82
cmp dword [ebp + 0x10], 0
je 0x422f78
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.00406600
mov ecx, dword [esp + 0x14]
push esi
call fcn.004210a0
mov edx, dword [ebx + 0x160]
sub edx, dword [ebx + 0x15c]
sar edx, 2
cmp edx, edi
jbe 0x422fba
mov eax, dword [ebx + 0x160]
sub eax, dword [ebx + 0x15c]
sar eax, 2
cmp edi, eax
jb 0x422fad
call fcn.004a067d
mov ecx, dword [ebx + 0x15c]
mov dword [ecx + edi*4], 0xffffffff
add dword [esp + 0x10], 0x18
inc edi
cmp edi, dword [ebx + 0x1e4]
jl 0x422da0
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 0x4231c4
jmp 0x423000
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 0x42301f
call fcn.004a067d
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.0040f8e0
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x104], 0
mov dword [esp + 0x10], 0
jle 0x4231ae
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.0041f320
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 0x423092
cmp edi, eax
je 0x423097
call fcn.004a067d
cmp esi, ebx
je 0x423195
nop
test edi, edi
jne 0x423129
call fcn.004a067d
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4230b9
call fcn.004a067d
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 0x42312d
mov ebx, dword [esp + 0x14]
push esi
push edi
lea edx, [esp + 0xdc]
push edx
lea ecx, [ebx + 0xbc]
call fcn.00420650
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
jmp 0x423142
mov eax, dword [edi]
jmp 0x4230af
lea ecx, [esp + 0x1c]
call fcn.00419da0
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 0x423176
mov ecx, dword [esp + 0x10]
lea esp, [esp]
cmp ecx, dword [eax + 0xc]
jge 0x42316d
mov dword [esp + 0x24], eax
mov eax, dword [eax]
jmp 0x423170
mov eax, dword [eax + 8]
cmp byte [eax + 0x41], 0
je 0x423160
lea eax, [ebx + 0xbc]
mov eax, dword [eax]
test edi, edi
je 0x423186
cmp edi, eax
je 0x42318b
call fcn.004a067d
cmp esi, dword [esp + 0x24]
jne 0x4230a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, dword [ecx + 0x104]
mov dword [esp + 0x10], eax
jl 0x423051
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x94]
mov dword [esp + 0x18], eax
jl 0x423000
mov eax, dword [esp + 0x34]
xor esi, esi
cmp eax, esi
je 0x4231d7
push eax
call fcn.0048f8b2
add esp, 4
mov edx, dword [esp + 0x28]
push edx
jmp 0x422d57