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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd4
mov esi, dword [esp + 0xec]
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0x88]
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.0043fa20
xor ecx, ecx
cmp eax, 0
jl 0x42216e
mov dword [esp], esi
call fcn.00414f20
shl eax, 1
mov word [esp + 0xb8], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xba], ax
mov dword [esp + 0xbc], esi
mov dword [esp], 0x848
call fcn.0043a9d0
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x88]
mov al, byte [esp + 0x90]
mov byte [esp + 0xac], al
mov byte [esp + 0x4c], 0x3b
mov byte [esp + 0x4d], 0x3a
mov byte [esp + 0x4e], 0x3d
mov byte [esp + 0x4f], 0x3c
xor eax, eax
cmp eax, 4
jae 0x421a1b
movzx edx, byte [esp + eax + 0x4c]
mov ecx, eax
xor ecx, 0x1900b8b5
mov edi, eax
or edi, 0x66ff474a
and edi, ecx
mov ecx, eax
xor ecx, 0x66ff474a
shl edi, 1
add ecx, edi
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
mov ebx, ecx
add ebx, edi
mov edi, ecx
xor edi, 0xffffffff
or ebx, edi
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edi, edx
mov ebp, ebx
shl ebp, 1
xor ebp, 0xffffffff
add ebx, ebp
or edi, ebx
xor edx, 0xffffffff
and ecx, edx
mov edx, ecx
xor edx, edi
xor edx, 0xffffffff
xor edi, 0xffffffff
and ecx, edi
or ecx, edx
add cl, 0x8e
mov byte [esp + eax + 0x4c], cl
mov ecx, eax
xor ecx, 0xfffffffe
mov edx, eax
or edx, 1
and edx, ecx
or eax, 1
add eax, edx
jmp 0x4219a0
mov edi, dword [esp + 0x4c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44c008]
jb 0x421a33
jmp 0x421aeb
mov edx, dword [0x44c00c]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x421a53
jmp 0x421ada
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x421ada
mov eax, dword [0x44c010]
xor ecx, ecx
lea ecx, [esp + 0xcc]
lea ebx, [esp + 0xb8]
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 + 0x64]
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.0043d3e0
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x421ae3
jmp 0x421aeb
add ebp, 1
jmp 0x421a21
cmp ecx, 2
je 0x421af2
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x422048
mov dword [esp + 0x54], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x64]
jmp 0x421b0f
mov dword [esp + 0x3c], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x58], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x421ce5
mov al, byte [esp + 0x84]
mov byte [esp + 0x94], al
mov byte [esp + 0x44], 0xda
mov byte [esp + 0x45], 0x89
mov byte [esp + 0x46], 0xb6
mov byte [esp + 0x47], 0xb7
xor eax, eax
cmp eax, 4
jae 0x421b84
movzx edx, byte [esp + eax + 0x44]
mov ebp, eax
add ebp, 0x9e
mov ecx, 0x61
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and ebp, edx
or ecx, ebp
add cl, 0xea
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x421b56
mov ebp, dword [esp + 0x58]
add ebp, 0x44
lea eax, [esp + 0x44]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422180
cmp eax, 0
je 0x421ce5
mov dword [esp + 0x40], ebx
mov al, byte [esp + 0x80]
mov byte [esp + 0x98], al
mov byte [esp + 0x5c], 0xee
mov byte [esp + 0x5d], 0x3b
mov byte [esp + 0x5e], 0xe8
mov byte [esp + 0x5f], 0x39
mov byte [esp + 0x60], 0x38
mov byte [esp + 0x61], 0x27
mov eax, 6
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 8
jne 0x421bdd
xor ebx, ebx
cmp ebx, 8
jae 0x421c1e
mov dl, byte [esp + ebx + 0x5c]
mov eax, ebx
add eax, 0xb
mov ecx, 0x34
sub ecx, ebx
and ecx, 0xcb
and eax, 0x34
or ecx, eax
xor cl, dl
xor cl, 0x34
mov al, 8
sub al, cl
mov byte [esp + ebx + 0x5c], al
add ebx, 1
jmp 0x421bec
lea eax, [esp + 0x5c]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422180
cmp eax, 0
jne 0x421c44
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x421ce9
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x421c5f
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
mov ebx, eax
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.00414b80
mov word [eax], 0
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x28]
mov edx, dword [esi]
mov esi, ebx
xor edx, 0xffffffff
or edx, 0xffffffef
xor edx, 0xffffffff
and edx, 0xffffffff
xor ecx, ecx
cmp edx, 0
setne cl
mov edx, dword [esp + 0xf4]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], esi
and ecx, 1
mov dword [esp + 4], ecx
call dword [esp + 0xf0]
and al, 1
movzx eax, al
mov ecx, dword [esp + 0x40]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], esi
call fcn.004095d0
mov esi, dword [esp + 0x3c]
jmp 0x421ce9
mov esi, dword [esp + 0x3c]
cmp esi, 0
je 0x421cf4
mov edi, dword [esp + 0x54]
jmp 0x421d1b
mov dword [esp], 0x10900
call fcn.0043a9d0
mov edi, eax
cmp edi, 0
jne 0x421d17
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x58]
jmp 0x42203a
mov esi, edi
jmp 0x421d1b
cmp edi, esi
jne 0x422021
mov al, byte [esp + 0x74]
mov byte [esp + 0x9c], al
mov byte [esp + 0x78], 0x9c
mov byte [esp + 0x79], 0x8c
mov byte [esp + 0x7a], 0x95
mov byte [esp + 0x7b], 0x99
mov eax, 4
mov byte [esp + eax + 0x78], 0
add eax, 1
cmp eax, 6
jne 0x421d47
mov dword [esp + 0x3c], esi
xor eax, eax
cmp eax, 6
jae 0x421d96
movzx ecx, byte [esp + eax + 0x78]
mov esi, eax
shl esi, 1
and esi, 0x6d623db6
mov edx, eax
xor edx, 0xb6b11edb
add edx, esi
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
add esi, ecx
and esi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, esi
add cl, 0xb9
mov byte [esp + eax + 0x78], cl
add eax, 1
jmp 0x421d5a
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc4], eax
mov al, byte [esp + 0x8c]
mov byte [esp + 0xb0], al
mov byte [esp + 0x48], 0x3b
mov byte [esp + 0x49], 0x3a
mov byte [esp + 0x4a], 0x3d
mov byte [esp + 0x4b], 0x3c
xor eax, eax
cmp eax, 4
jae 0x421e52
movzx edx, byte [esp + eax + 0x48]
mov ecx, eax
xor ecx, 0x1900b8b5
mov esi, eax
or esi, 0x66ff474a
and esi, ecx
mov ecx, eax
xor ecx, 0x66ff474a
shl esi, 1
add ecx, esi
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
mov ebp, ecx
add ebp, esi
mov esi, ecx
xor esi, 0xffffffff
or ebp, esi
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add esi, edx
mov ebx, ebp
shl ebx, 1
xor ebx, 0xffffffff
add ebp, ebx
or esi, ebp
xor edx, 0xffffffff
and ecx, edx
mov edx, ecx
xor edx, esi
xor edx, 0xffffffff
xor esi, 0xffffffff
and ecx, esi
or ecx, edx
add cl, 0x8e
mov byte [esp + eax + 0x48], cl
mov ecx, eax
xor ecx, 0xfffffffe
mov edx, eax
or edx, 1
and edx, ecx
or eax, 1
add eax, edx
jmp 0x421dd7
mov esi, dword [esp + 0x48]
xor ebp, ebp
mov ebx, dword [esp + 0x40]
mov ecx, 2
cmp ebp, dword [0x44c008]
jb 0x421e6e
jmp 0x421f4d
mov dword [esp + 0xb4], esi
mov esi, ebx
mov edx, dword [0x44c00c]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3a], bl
test bl, 1
jne 0x421e99
mov ebx, esi
jmp 0x421f35
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, dword [esp + 0xb4]
mov ebx, esi
je 0x421f35
mov eax, dword [0x44c010]
xor ecx, ecx
lea ecx, [esp + 0xcc]
lea ebx, [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xc4]
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 + 0xc8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x34], 0
call fcn.0043d3e0
mov ecx, 1
test byte [esp + 0x3a], 1
mov esi, dword [esp + 0xb4]
je 0x421f45
jmp 0x421f4d
add ebp, 1
jmp 0x421e5c
cmp ecx, 2
je 0x421f54
mov esi, eax
mov al, byte [esp + 0x68]
mov byte [esp + 0xa0], al
mov byte [esp + 0x6c], 0x9d
mov byte [esp + 0x6d], 0x99
mov byte [esp + 0x6e], 0x9e
mov byte [esp + 0x6f], 0x1f
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 7
jne 0x421f78
xor eax, eax
cmp eax, 7
jae 0x421fbc
mov dl, byte [esp + eax + 0x6c]
mov ebx, eax
add ebx, 0x1a
mov ecx, 0x25
sub ecx, eax
and ecx, 0xc1
and ebx, 0x3e
or ecx, ebx
mov ebx, dword [esp + 0x40]
xor cl, dl
xor cl, 0xc1
add cl, 0xbe
mov byte [esp + eax + 0x6c], cl
add eax, 1
jmp 0x421f87
mov eax, dword [esp + 0x6c]
cmp esi, eax
jne 0x421ff2
xor eax, eax
mov edx, edi
jmp 0x421fca
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x421fe1
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x421fca
cmp eax, 0
je 0x421fee
mov dword [eax], 0
jmp 0x421fee
xor esi, esi
jmp 0x421ff2
cmp esi, 0
jge 0x42200a
mov esi, dword [esp + 0x3c]
mov dword [esp], esi
call fcn.0043aa40
mov eax, 2
jmp 0x422012
xor eax, eax
mov esi, dword [esp + 0x3c]
jmp 0x422012
cmp eax, 0
je 0x422021
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x58]
jmp 0x42203a
mov eax, dword [edi]
cmp eax, 0
je 0x422032
mov ecx, edi
add ecx, eax
mov dword [esp + 0x54], ecx
jmp 0x422038
mov dword [esp + 0x54], esi
jmp 0x422038
xor eax, eax
test eax, eax
mov eax, edi
je 0x421b0f
jmp 0x422046
jmp 0x422048
mov esi, ebx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.0043aa40
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc0], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0xa8], al
mov byte [esp + 0x50], 0x3b
mov byte [esp + 0x51], 0x3a
mov byte [esp + 0x52], 0x3d
mov byte [esp + 0x53], 0x3c
xor eax, eax
cmp eax, 4
jae 0x422103
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
xor ecx, 0x1900b8b5
mov edi, eax
or edi, 0x66ff474a
and edi, ecx
mov ecx, eax
xor ecx, 0x66ff474a
shl edi, 1
add ecx, edi
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
mov ebx, ecx
add ebx, edi
mov edi, ecx
xor edi, 0xffffffff
or ebx, edi
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edi, edx
mov ebp, ebx
shl ebp, 1
xor ebp, 0xffffffff
add ebx, ebp
or edi, ebx
xor edx, 0xffffffff
and ecx, edx
mov edx, ecx
xor edx, edi
xor edx, 0xffffffff
xor edi, 0xffffffff
and ecx, edi
or ecx, edx
add cl, 0x8e
mov byte [esp + eax + 0x50], cl
mov ecx, eax
xor ecx, 0xfffffffe
mov edx, eax
or edx, 1
and edx, ecx
or eax, 1
add eax, edx
jmp 0x422088
mov edi, dword [esp + 0x50]
xor ebx, ebx
cmp ebx, dword [0x44c008]
jb 0x422113
jmp 0x42216c
mov eax, dword [0x44c00c]
cmp dword [eax + ebx*8], 0x1b6183f2
sete cl
test cl, 1
jne 0x422129
jmp 0x422160
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
jne 0x422133
jmp 0x422160
mov byte [esp + 0x39], cl
mov ecx, dword [0x44c010]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
call fcn.0043d3e0
mov cl, byte [esp + 0x39]
test cl, 1
je 0x422167
jmp 0x42216c
add ebx, 1
jmp 0x422109
mov ecx, esi
and cl, 1
movzx eax, cl
add esp, 0xd4
pop esi
pop edi
pop ebx
pop ebp
ret