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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe0
mov esi, dword [esp + 0xf8]
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.0043fca0
xor ebx, ebx
cmp eax, 0
jl 0x4231a8
mov dword [esp], esi
call fcn.00418720
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 2
mov edx, eax
and edx, 0xfffffffd
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
add eax, edx
mov word [esp + 0xc4], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xc6], ax
mov dword [esp + 0xc8], esi
mov dword [esp], 0x848
call fcn.0043afb0
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x74]
mov al, byte [esp + 0x84]
mov byte [esp + 0xb0], al
mov byte [esp + 0x88], 0x4b
mov byte [esp + 0x89], 0x4a
mov byte [esp + 0x8a], 0x4d
mov byte [esp + 0x8b], 0x4c
mov eax, 4
mov byte [esp + eax + 0x88], 0
add eax, 1
cmp eax, 7
jne 0x422a54
xor eax, eax
cmp eax, 7
jae 0x422a88
mov cl, byte [esp + eax + 0x88]
mov dl, al
add dl, 0x72
xor dl, cl
add dl, 0xc6
mov byte [esp + eax + 0x88], dl
add eax, 1
jmp 0x422a66
mov edi, dword [esp + 0x88]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x44ce50]
jb 0x422aa3
jmp 0x422b5d
mov ecx, dword [0x44ce54]
cmp dword [ecx + ebx*8], 0x7fd4133f
sete dl
mov byte [esp + 0x3b], dl
test dl, 1
jne 0x422ac1
jmp 0x422b4a
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x422b4c
mov eax, dword [0x44ce58]
xor ecx, ecx
lea ecx, [esp + 0xd8]
lea ebp, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], 0
call fcn.0043d4f0
mov ecx, 1
jmp 0x422b4c
xor ecx, ecx
test byte [esp + 0x3b], 1
je 0x422b55
jmp 0x422b5d
add ebx, 1
jmp 0x422a91
cmp ecx, 2
je 0x422b64
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x4230c0
mov dword [esp + 0x44], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x50]
jmp 0x422b81
mov dword [esp + 0x3c], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x422d86
mov al, byte [esp + 0x70]
mov byte [esp + 0x90], al
mov byte [esp + 0x40], 0x36
mov byte [esp + 0x41], 0xdb
mov byte [esp + 0x42], 0xda
mov byte [esp + 0x43], 0xd9
xor eax, eax
cmp eax, 4
jae 0x422bfd
movzx edx, byte [esp + eax + 0x40]
mov ecx, eax
add ecx, 0x81058af
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x94
add ecx, edx
mov byte [esp + eax + 0x40], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x422bc5
mov ebp, dword [esp + 0x48]
add ebp, 0x44
lea eax, [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004231c0
cmp eax, 0
je 0x422d86
mov al, byte [esp + 0x6c]
mov byte [esp + 0x94], al
mov byte [esp + 0xb8], 0xbe
mov byte [esp + 0xb9], 0x61
mov byte [esp + 0xba], 0xbc
mov byte [esp + 0xbb], 0x63
mov byte [esp + 0xbc], 0x64
mov byte [esp + 0xbd], 0x65
mov eax, 6
mov byte [esp + eax + 0xb8], 0
add eax, 1
cmp eax, 0xa
jne 0x422c61
xor eax, eax
cmp eax, 0xa
jae 0x422cab
mov cl, byte [esp + eax + 0xb8]
mov byte [esp + 0x39], cl
mov edx, ebx
mov ebx, eax
shl ebx, 1
and ebx, 0x30
mov ecx, eax
xor ecx, 0x98
add ecx, ebx
mov ebx, edx
xor cl, byte [esp + 0x39]
add cl, 8
mov byte [esp + eax + 0xb8], cl
add eax, 1
jmp 0x422c73
lea eax, [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004231c0
cmp eax, 0
jne 0x422cd0
mov esi, dword [esp + 0x3c]
jmp 0x422d8a
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x422ceb
mov ecx, eax
mov dword [esp], ecx
call fcn.00408220
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00418340
mov word [eax], 0
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x28]
mov edx, dword [esi]
mov ecx, edx
xor ecx, 0x10
xor ecx, 0xffffffff
or edx, 0x10
and edx, ecx
xor ecx, ecx
cmp edx, 0
setne cl
mov edx, dword [esp + 0x100]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], edi
and ecx, 1
mov dword [esp + 4], ecx
call dword [esp + 0xfc]
and al, 1
movzx edx, al
and bl, 1
movzx eax, bl
mov ecx, eax
xor ecx, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
and ecx, esi
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], edi
call fcn.00408230
mov esi, dword [esp + 0x3c]
jmp 0x422d8a
mov esi, dword [esp + 0x3c]
cmp esi, 0
je 0x422d95
mov edi, dword [esp + 0x44]
jmp 0x422dbc
mov dword [esp], 0x10900
call fcn.0043afb0
mov edi, eax
cmp edi, 0
jne 0x422db8
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x48]
jmp 0x4230b2
mov esi, edi
jmp 0x422dbc
cmp edi, esi
jne 0x423099
mov al, byte [esp + 0x60]
mov byte [esp + 0x98], al
mov byte [esp + 0x64], 0x24
mov byte [esp + 0x65], 0x1c
mov byte [esp + 0x66], 0x25
mov byte [esp + 0x67], 0x21
mov eax, 4
mov byte [esp + eax + 0x64], 0
add eax, 1
cmp eax, 5
jne 0x422de8
mov dword [esp + 0x3c], esi
mov dword [esp + 0x4c], ebx
xor eax, eax
cmp eax, 5
jae 0x422e6d
movzx ecx, byte [esp + eax + 0x64]
mov edx, eax
add edx, 1
mov esi, eax
xor esi, 0xffffffff
or esi, 0x3d0ee9b9
add esi, edx
mov edx, esi
and edx, 2
xor edx, 2
mov ebx, esi
and ebx, 0xfffffffd
imul ebx, edx
mov edx, esi
and edx, 2
or esi, 2
imul esi, edx
add esi, ebx
mov edx, eax
xor edx, 0x3d0ee9b9
add edx, esi
mov esi, edx
and esi, ecx
shl esi, 1
sub edx, esi
add edx, ecx
add edx, 0x1751acb4
mov ecx, edx
shl ecx, 1
and ecx, 0xc4
xor edx, 0x62
add edx, ecx
add dl, 0x4d
mov byte [esp + eax + 0x64], dl
add eax, 1
jmp 0x422dff
mov eax, dword [esp + 0x64]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd0], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0xb4], al
mov byte [esp + 0x7c], 0x4b
mov byte [esp + 0x7d], 0x4a
mov byte [esp + 0x7e], 0x4d
mov byte [esp + 0x7f], 0x4c
mov eax, 4
mov byte [esp + eax + 0x7c], 0
add eax, 1
cmp eax, 7
jne 0x422ea7
xor eax, eax
mov ebx, dword [esp + 0x4c]
cmp eax, 7
jae 0x422ed6
mov cl, byte [esp + eax + 0x7c]
mov dl, al
add dl, 0x72
xor dl, cl
add dl, 0xc6
mov byte [esp + eax + 0x7c], dl
add eax, 1
jmp 0x422eba
mov esi, dword [esp + 0x7c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44ce50]
jb 0x422eee
jmp 0x422fb6
mov ecx, dword [0x44ce54]
cmp dword [ecx + ebp*8], 0x7fd4133f
sete dl
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x422f0c
jmp 0x422fa3
mov edx, dword [ecx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x422fa5
mov eax, dword [0x44ce58]
xor ecx, ecx
lea ecx, [esp + 0xd8]
lea ebx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x34], 0
call fcn.0043d4f0
mov ecx, 1
jmp 0x422fa5
xor ecx, ecx
test byte [esp + 0x3a], 1
je 0x422fae
jmp 0x422fb6
add ebp, 1
jmp 0x422edc
cmp ecx, 2
je 0x422fbd
mov esi, eax
mov al, byte [esp + 0x54]
mov byte [esp + 0x9c], al
mov byte [esp + 0x58], 0x3b
mov byte [esp + 0x59], 0x3f
mov byte [esp + 0x5a], 0x3e
mov byte [esp + 0x5b], 0xb1
mov eax, 4
mov byte [esp + eax + 0x58], 0
add eax, 1
cmp eax, 6
jne 0x422fe1
xor eax, eax
cmp eax, 6
jae 0x423034
movzx ecx, byte [esp + eax + 0x58]
mov ebx, eax
shl ebx, 1
and ebx, 0xacdfe8ea
mov ebp, eax
shl ebp, 1
and ebp, 0xacdfe8ea
mov edx, eax
add edx, 0xd66ff475
sub edx, ebp
add edx, ebx
mov ebx, edx
xor ebx, ecx
xor edx, ecx
shl edx, 1
sub edx, ebx
mov ebx, dword [esp + 0x4c]
add dl, 0xb7
mov byte [esp + eax + 0x58], dl
add eax, 1
jmp 0x422ff0
mov eax, dword [esp + 0x58]
cmp esi, eax
jne 0x42306a
xor eax, eax
mov esi, edi
jmp 0x423042
mov ecx, esi
mov edx, dword [ecx]
cmp edx, 0
je 0x423059
shr edx, 2
shl edx, 2
mov esi, ecx
add esi, edx
mov eax, ecx
jmp 0x423042
cmp eax, 0
je 0x423066
mov dword [eax], 0
jmp 0x423066
xor esi, esi
jmp 0x42306a
cmp esi, 0
jge 0x423082
mov esi, dword [esp + 0x3c]
mov dword [esp], esi
call fcn.0043b070
mov eax, 2
jmp 0x42308a
xor eax, eax
mov esi, dword [esp + 0x3c]
jmp 0x42308a
cmp eax, 0
je 0x423099
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x48]
jmp 0x4230b2
mov eax, dword [edi]
cmp eax, 0
je 0x4230aa
mov ecx, edi
add ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x4230b0
mov dword [esp + 0x44], esi
jmp 0x4230b0
xor eax, eax
test eax, eax
mov eax, edi
je 0x422b81
jmp 0x4230be
jmp 0x4230c0
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.0043b070
mov eax, dword [esp + 0x74]
mov dword [esp + 0xcc], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0xac], al
mov byte [esp + 0xa4], 0x4b
mov byte [esp + 0xa5], 0x4a
mov byte [esp + 0xa6], 0x4d
mov byte [esp + 0xa7], 0x4c
mov eax, 4
mov byte [esp + eax + 0xa4], 0
add eax, 1
cmp eax, 7
jne 0x42310a
xor eax, eax
cmp eax, 7
jae 0x42313e
mov cl, byte [esp + eax + 0xa4]
mov dl, al
add dl, 0x72
xor dl, cl
add dl, 0xc6
mov byte [esp + eax + 0xa4], dl
add eax, 1
jmp 0x42311c
mov edi, dword [esp + 0xa4]
xor ebp, ebp
cmp ebp, dword [0x44ce50]
jb 0x423151
jmp 0x4231a8
mov esi, ebx
mov eax, dword [0x44ce54]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x423169
jmp 0x423198
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x423198
mov ecx, dword [0x44ce58]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
call fcn.0043d4f0
jmp 0x423198
test bl, 1
je 0x4231a1
mov ebx, esi
jmp 0x4231a8
add ebp, 1
mov ebx, esi
jmp 0x423147
and bl, 1
movzx eax, bl
add esp, 0xe0
pop esi
pop edi
pop ebx
pop ebp
ret