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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xec
mov esi, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
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.00440400
xor ebx, ebx
cmp eax, 0
jl 0x4228e7
mov dword [esp], esi
call fcn.00415a00
shl eax, 1
mov word [esp + 0xc8], ax
movzx eax, ax
add eax, 2
lea ecx, [esp + 0xc8]
add ecx, 2
mov word [ecx], ax
mov dword [esp + 0xcc], esi
mov dword [esp], 0x848
call fcn.0043a8b0
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x74]
mov al, byte [esp + 0x84]
mov byte [esp + 0xb0], al
mov byte [esp + 0x88], 0x8b
mov byte [esp + 0x89], 0x8a
mov byte [esp + 0x8a], 0xb5
mov byte [esp + 0x8b], 0xb4
mov eax, 4
mov byte [esp + eax + 0x88], 0
add eax, 1
cmp eax, 5
jne 0x42214e
xor eax, eax
cmp eax, 5
jae 0x422193
movzx edx, byte [esp + eax + 0x88]
mov ecx, eax
add ecx, 0x1e
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0xe1
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0x6a
mov byte [esp + eax + 0x88], cl
add eax, 1
jmp 0x422160
mov edi, dword [esp + 0x88]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44d398]
jb 0x4221ae
jmp 0x422266
mov edx, dword [0x44d39c]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x4221ce
jmp 0x422255
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x422255
mov eax, dword [0x44d3a0]
xor ecx, ecx
lea ecx, [esp + 0xe4]
lea ebx, [esp + 0xc8]
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 + 0x48]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.0043dc10
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x42225e
jmp 0x422266
add ebp, 1
jmp 0x42219c
cmp ecx, 2
je 0x42226d
mov edi, eax
cmp edi, 0
setge al
xor ebx, ebx
test al, 1
jne 0x42227e
jmp 0x4227f0
mov dword [esp + 0x40], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x48]
jmp 0x422290
mov dword [esp + 0x3c], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x38]
mov ecx, eax
and ecx, 0x400
xor ecx, 0xffffffff
and eax, 0x400
xor eax, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0
jne 0x4224ec
mov al, byte [esp + 0x68]
mov byte [esp + 0x90], al
mov byte [esp + 0x6c], 0x82
mov byte [esp + 0x6d], 0x7f
mov byte [esp + 0x6e], 0x7e
mov byte [esp + 0x6f], 0x71
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 8
jne 0x4222ea
xor eax, eax
mov dword [esp + 0xc4], ebx
cmp eax, 8
jae 0x42236e
mov cl, byte [esp + eax + 0x6c]
movzx edx, cl
mov ebx, 0xc248ef6a
sub ebx, eax
or ebx, edx
mov ebp, 0x6a
sub ebp, eax
and ebp, edx
mov edx, 0xc248ef6a
sub edx, eax
xor ebx, 0xffffffff
or ebp, ebx
or edx, ebp
mov ebx, edx
xor ebx, 0xffffffff
mov ebp, edx
and ebp, 2
and edx, 0xfd
xor edx, 0xfd
imul edx, ebp
mov ebp, ebx
and ebp, 2
or ebx, 2
imul ebx, ebp
add ebx, edx
mov edx, eax
sub edx, ebx
mov ebx, dword [esp + 0xc4]
add dl, 0x95
add dl, cl
add dl, 0x17
mov byte [esp + eax + 0x6c], dl
add eax, 1
jmp 0x422300
mov ebp, dword [esp + 0x44]
add ebp, 0x44
lea eax, [esp + 0x6c]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422900
cmp eax, 0
setne al
test al, 1
jne 0x422398
jmp 0x4224ec
mov al, byte [esp + 0x64]
mov byte [esp + 0x94], al
mov byte [esp + 0xb8], 0xfe
mov byte [esp + 0xb9], 0x21
mov byte [esp + 0xba], 0xfc
mov byte [esp + 0xbb], 0x23
mov byte [esp + 0xbc], 0x24
mov byte [esp + 0xbd], 0x25
mov eax, 6
mov byte [esp + eax + 0xb8], 0
add eax, 1
cmp eax, 0xc
jne 0x4223d8
xor eax, eax
cmp eax, 0xc
jae 0x422422
mov dl, byte [esp + eax + 0xb8]
mov ebx, eax
add ebx, 0x78
mov ecx, 7
sub ecx, eax
and ecx, 0x80
and ebx, 0x7f
or ecx, ebx
xor cl, dl
xor cl, 0x7f
mov dl, 0x27
sub dl, cl
mov byte [esp + eax + 0xb8], dl
add eax, 1
jmp 0x4223ea
lea eax, [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422900
cmp eax, 0
mov ebx, dword [esp + 0xc4]
jne 0x42244e
mov esi, dword [esp + 0x3c]
jmp 0x4224f0
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x422469
mov ecx, eax
mov dword [esp], ecx
call fcn.004095a0
mov dword [esp + 0xd0], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.00415670
mov word [eax], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x28]
mov edx, dword [esi]
mov esi, dword [esp + 0xd0]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0x10c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], esi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0x108]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], esi
call fcn.004095b0
mov esi, dword [esp + 0x3c]
jmp 0x4224f0
mov esi, dword [esp + 0x3c]
cmp esi, 0
je 0x4224fb
mov edi, dword [esp + 0x40]
jmp 0x422529
mov dword [esp], 0x10900
call fcn.0043a8b0
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x422515
jmp 0x422525
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x44]
jmp 0x4227e2
mov esi, edi
jmp 0x422529
cmp edi, esi
jne 0x4227c9
mov al, byte [esp + 0x58]
mov byte [esp + 0x98], al
mov byte [esp + 0x5c], 0x24
mov byte [esp + 0x5d], 0x1c
mov byte [esp + 0x5e], 0x25
mov byte [esp + 0x5f], 0x21
mov eax, 4
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 8
jne 0x422555
xor eax, eax
cmp eax, 8
jae 0x422590
movzx edx, byte [esp + eax + 0x5c]
mov ecx, eax
add ecx, 0x5376f739
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
add cl, 0xe2
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x422564
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xdc], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0xb4], al
mov byte [esp + 0x7c], 0x8b
mov byte [esp + 0x7d], 0x8a
mov byte [esp + 0x7e], 0xb5
mov byte [esp + 0x7f], 0xb4
mov eax, 4
mov byte [esp + eax + 0x7c], 0
add eax, 1
cmp eax, 5
jne 0x4225ca
mov dword [esp + 0x3c], esi
xor eax, eax
cmp eax, 5
jae 0x42260a
movzx edx, byte [esp + eax + 0x7c]
mov ecx, eax
add ecx, 0x1e
mov esi, edx
xor esi, 0xffffffff
and ecx, esi
mov esi, 0xe1
sub esi, eax
and esi, edx
or ecx, esi
add cl, 0x6a
mov byte [esp + eax + 0x7c], cl
add eax, 1
jmp 0x4225dd
mov esi, dword [esp + 0x7c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44d398]
jb 0x422622
jmp 0x4226f1
mov eax, esi
mov esi, dword [0x44d39c]
cmp dword [esi + ebp*8], 0x7fd4133f
sete dl
xor ecx, ecx
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x422646
mov esi, eax
jmp 0x4226e0
mov edx, dword [esi + ebp*8 + 4]
mov ecx, 2
mov esi, eax
cmp edx, esi
je 0x4226e0
mov eax, dword [0x44d3a0]
xor ecx, ecx
lea ecx, [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xdc]
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 + 0xe0]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
lea eax, [esp + 0xc8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043dc10
mov dword [esp + 0xd4], eax
mov ecx, 1
test byte [esp + 0x3a], 1
je 0x4226e9
jmp 0x4226f1
add ebp, 1
jmp 0x422610
cmp ecx, 2
je 0x4226fd
mov esi, dword [esp + 0xd4]
mov al, byte [esp + 0x4c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x50], 0x17
mov byte [esp + 0x51], 0x1b
mov byte [esp + 0x52], 0x1a
mov byte [esp + 0x53], 0x99
mov eax, 4
mov byte [esp + eax + 0x50], 0
add eax, 1
cmp eax, 8
jne 0x422721
xor eax, eax
cmp eax, 8
jae 0x42275c
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
add ecx, 0xb5edd0fb
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x30
xor ecx, 0x18
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x50], cl
add eax, 1
jmp 0x422730
cmp esi, dword [esp + 0x50]
sete al
test al, 1
jne 0x422769
jmp 0x422797
xor eax, eax
mov edx, edi
jmp 0x42276f
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x422786
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x42276f
cmp eax, 0
je 0x422793
mov dword [eax], 0
jmp 0x422793
xor esi, esi
jmp 0x422797
cmp esi, 0
setge al
test al, 1
mov esi, dword [esp + 0x3c]
jne 0x4227b6
jmp 0x4227a7
mov dword [esp], esi
call fcn.0043a930
mov eax, 2
jmp 0x4227ba
xor eax, eax
jmp 0x4227ba
cmp eax, 0
je 0x4227c9
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
jmp 0x4227e2
mov eax, dword [edi]
cmp eax, 0
je 0x4227da
mov ecx, edi
add ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x4227e0
mov dword [esp + 0x40], esi
jmp 0x4227e0
xor eax, eax
test eax, eax
mov eax, edi
je 0x422290
jmp 0x4227ee
jmp 0x4227f0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0043a930
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd8], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0xac], al
mov byte [esp + 0xa4], 0x8b
mov byte [esp + 0xa5], 0x8a
mov byte [esp + 0xa6], 0xb5
mov byte [esp + 0xa7], 0xb4
mov eax, 4
mov byte [esp + eax + 0xa4], 0
add eax, 1
cmp eax, 5
jne 0x42283a
xor eax, eax
cmp eax, 5
jae 0x42287f
movzx edx, byte [esp + eax + 0xa4]
mov ecx, eax
add ecx, 0x1e
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0xe1
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0x6a
mov byte [esp + eax + 0xa4], cl
add eax, 1
jmp 0x42284c
mov edi, dword [esp + 0xa4]
xor ebp, ebp
cmp ebp, dword [0x44d398]
jb 0x422892
jmp 0x4228e7
mov esi, ebx
mov eax, dword [0x44d39c]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4228aa
jmp 0x4228d7
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x4228d7
mov ecx, dword [0x44d3a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xc], eax
call fcn.0043dc10
test bl, 1
je 0x4228e0
mov ebx, esi
jmp 0x4228e7
add ebp, 1
mov ebx, esi
jmp 0x422888
and bl, 1
movzx eax, bl
add esp, 0xec
pop esi
pop edi
pop ebx
pop ebp
ret