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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x104]
lea ecx, [esp + 0x78]
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.00440510
xor ebx, ebx
cmp eax, 0
jl 0x422749
mov dword [esp], esi
call fcn.00417c60
shl eax, 1
mov word [esp + 0xcc], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xce], ax
mov dword [esp + 0xd0], esi
mov dword [esp], 0x848
call fcn.0043b700
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x78]
mov al, byte [esp + 0x88]
mov byte [esp + 0xb4], al
mov byte [esp + 0x8c], 0x85
mov byte [esp + 0x8d], 0xba
mov byte [esp + 0x8e], 0xbb
mov byte [esp + 0x8f], 0xb8
mov eax, 4
mov byte [esp + eax + 0x8c], 0
add eax, 1
cmp eax, 7
jne 0x421f49
xor eax, eax
cmp eax, 7
jae 0x421f90
movzx edx, byte [esp + eax + 0x8c]
mov ecx, eax
add ecx, 0x893e81df
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x48
xor ecx, 0xa4
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x8c], cl
add eax, 1
jmp 0x421f5b
mov edi, dword [esp + 0x8c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44d268]
jb 0x421fab
jmp 0x422063
mov edx, dword [0x44d26c]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3f], bl
test bl, 1
jne 0x421fcb
jmp 0x422052
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x422052
mov eax, dword [0x44d270]
xor ecx, ecx
lea ecx, [esp + 0xe8]
lea ebx, [esp + 0xcc]
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 + 0x4c]
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.0043de40
mov ecx, 1
test byte [esp + 0x3f], 1
je 0x42205b
jmp 0x422063
add ebp, 1
jmp 0x421f99
cmp ecx, 2
je 0x42206a
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x422650
mov dword [esp + 0x44], 0
xor ebx, ebx
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x4c]
jmp 0x42208d
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x38]
xor eax, 0xffffffff
or eax, 0xfffffbff
xor eax, 0xffffffff
and eax, 0xffffffff
cmp eax, 0
jne 0x4222e7
mov al, byte [esp + 0x6c]
mov byte [esp + 0x94], al
mov byte [esp + 0x70], 0x5e
mov byte [esp + 0x71], 0x61
mov byte [esp + 0x72], 0x62
mov byte [esp + 0x73], 0x63
mov eax, 4
mov byte [esp + eax + 0x70], 0
add eax, 1
cmp eax, 8
jne 0x4220d9
xor eax, eax
mov dword [esp + 0xc8], ebx
cmp eax, 8
jae 0x422158
movzx ecx, byte [esp + eax + 0x70]
mov ebx, eax
add ebx, 0xe8
and ebx, ecx
mov ebp, ebx
and ebp, 0xfd
mov edx, ebx
or edx, 0xfd
add edx, 1
imul edx, ebp
mov ebp, ebx
and ebp, 2
or ebx, 2
imul ebx, ebp
sub edx, ebx
mov ebx, eax
add ebx, 0xe8
add ebx, ecx
add ebx, edx
add bl, 0x78
mov byte [esp + eax + 0x70], bl
mov ebx, dword [esp + 0xc8]
add eax, 0x2d47e435
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
add eax, 0xd2b81bcb
jmp 0x4220ef
mov ebp, dword [esp + 0x48]
add ebp, 0x44
lea eax, [esp + 0x70]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422760
cmp eax, 0
setne al
test al, 1
jne 0x422182
jmp 0x4222e7
mov al, byte [esp + 0x68]
mov byte [esp + 0x98], al
mov byte [esp + 0xbc], 0x3a
mov byte [esp + 0xbd], 9
mov byte [esp + 0xbe], 0x3c
mov byte [esp + 0xbf], 0xf
mov byte [esp + 0xc0], 0xc
mov byte [esp + 0xc1], 0xd
mov eax, 6
mov byte [esp + eax + 0xbc], 0
add eax, 1
cmp eax, 0xa
jne 0x4221c2
xor eax, eax
cmp eax, 0xa
jae 0x422219
mov cl, byte [esp + eax + 0xbc]
mov byte [esp + 0x3d], cl
mov ebx, eax
and ebx, 0x82
mov edx, eax
and edx, 0x7d
mov ecx, eax
xor ecx, 0x82
add ecx, eax
sub ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0xc8]
xor cl, byte [esp + 0x3d]
add cl, 0x76
mov byte [esp + eax + 0xbc], cl
add eax, 1
jmp 0x4221d4
lea eax, [esp + 0xbc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422760
cmp eax, 0
jne 0x42223a
jmp 0x4222e7
xor ecx, ecx
sub ecx, edi
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x42225b
mov ecx, eax
mov dword [esp], ecx
call fcn.00408250
mov dword [esp + 0xd4], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.004178c0
mov word [eax], 0
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x28]
mov edx, dword [esi]
mov esi, dword [esp + 0xd4]
xor edx, 0xffffffff
or edx, 0xffffffef
xor edx, 0xffffffff
and edx, 0xffffffff
xor ecx, ecx
cmp edx, 0
setne cl
mov edx, dword [esp + 0x110]
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 + 0x10c]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
jmp 0x4222db
mov dword [esp], esi
call fcn.00408260
jmp 0x4222e5
jmp 0x4222e7
cmp dword [esp + 0x40], 0
je 0x4222f8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
jmp 0x422331
mov dword [esp], 0x10900
call fcn.0043b700
mov dword [esp + 0x38], eax
cmp eax, 0
jne 0x422327
mov dword [esp + 0x40], 0
mov eax, 2
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
jmp 0x422640
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
jmp 0x422331
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x40]
jne 0x422615
mov al, byte [esp + 0x5c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x60], 0x64
mov byte [esp + 0x61], 0x7c
mov byte [esp + 0x62], 0x65
mov byte [esp + 0x63], 0x61
mov eax, 4
mov byte [esp + eax + 0x60], 0
add eax, 1
cmp eax, 6
jne 0x422363
xor eax, eax
cmp eax, 6
jae 0x42239f
mov cl, byte [esp + eax + 0x60]
mov dl, al
add dl, 0xe9
xor dl, cl
add dl, 0x73
mov byte [esp + eax + 0x60], dl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 1
xor edx, 0xffffffff
add eax, 2
add eax, edx
add eax, ecx
jmp 0x422372
mov eax, dword [esp + 0x60]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xe0], eax
mov al, byte [esp + 0x7c]
mov byte [esp + 0xb8], al
mov byte [esp + 0x80], 0x85
mov byte [esp + 0x81], 0xba
mov byte [esp + 0x82], 0xbb
mov byte [esp + 0x83], 0xb8
mov eax, 4
mov byte [esp + eax + 0x80], 0
add eax, 1
cmp eax, 7
jne 0x4223e5
xor eax, eax
cmp eax, 7
jae 0x42242c
movzx edx, byte [esp + eax + 0x80]
mov ecx, eax
add ecx, 0x893e81df
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x48
xor ecx, 0xa4
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x80], cl
add eax, 1
jmp 0x4223f7
mov esi, dword [esp + 0x80]
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44d268]
jb 0x422447
jmp 0x422524
mov ebp, dword [0x44d26c]
cmp dword [ebp + edi*8], 0x7fd4133f
sete dl
xor ecx, ecx
mov byte [esp + 0x3e], dl
test dl, 1
mov dword [esp + 0xd8], edi
jne 0x42246f
jmp 0x42250c
mov edx, dword [ebp + edi*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x42250c
mov eax, dword [0x44d270]
xor ecx, ecx
lea edi, [esp + 0xe8]
mov ecx, esi
mov esi, ebx
lea ebx, [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, esi
mov esi, ecx
mov dword [esp + 0x34], 0
call fcn.0043de40
mov ecx, 1
test byte [esp + 0x3e], 1
je 0x422515
jmp 0x422524
mov edi, dword [esp + 0xd8]
add edi, 1
jmp 0x422435
cmp ecx, 2
je 0x42252b
mov esi, eax
mov al, byte [esp + 0x50]
mov byte [esp + 0xa0], al
mov byte [esp + 0x54], 0x25
mov byte [esp + 0x55], 0x19
mov byte [esp + 0x56], 0x16
mov byte [esp + 0x57], 0x97
mov eax, 4
mov byte [esp + eax + 0x54], 0
add eax, 1
cmp eax, 8
jne 0x42254f
xor eax, eax
cmp eax, 8
jae 0x4225a5
movzx edx, byte [esp + eax + 0x54]
mov ecx, 0x79
sub ecx, eax
mov edi, esi
mov esi, ebx
mov ebx, 0x79
sub ebx, eax
and ecx, ebx
and ecx, edx
mov ebx, 0x79
sub ebx, eax
mov ebp, 0x79
sub ebp, eax
and ebx, ebp
or ebx, edx
xor ebx, 0xffffffff
or ecx, ebx
mov ebx, esi
mov esi, edi
add cl, 0x62
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x42255e
cmp esi, dword [esp + 0x54]
sete al
test al, 1
jne 0x4225b2
jmp 0x4225e2
xor eax, eax
mov edx, dword [esp + 0x38]
jmp 0x4225ba
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x4225d1
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x4225ba
cmp eax, 0
je 0x4225de
mov dword [eax], 0
jmp 0x4225de
xor esi, esi
jmp 0x4225e2
cmp esi, 0
jge 0x4225fa
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0043b790
mov eax, 2
jmp 0x4225fe
xor eax, eax
jmp 0x4225fe
cmp eax, 0
je 0x422615
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
jmp 0x422640
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
cmp eax, 0
setne cl
test cl, 1
jne 0x422628
jmp 0x422634
mov ecx, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x42263e
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], eax
jmp 0x42263e
xor eax, eax
test eax, eax
mov eax, dword [esp + 0x38]
je 0x42208d
jmp 0x42264e
jmp 0x422650
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.0043b790
mov eax, dword [esp + 0x78]
mov dword [esp + 0xdc], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0xb0], al
mov byte [esp + 0xa8], 0x85
mov byte [esp + 0xa9], 0xba
mov byte [esp + 0xaa], 0xbb
mov byte [esp + 0xab], 0xb8
mov eax, 4
mov byte [esp + eax + 0xa8], 0
add eax, 1
cmp eax, 7
jne 0x42269a
xor eax, eax
cmp eax, 7
jae 0x4226e1
movzx edx, byte [esp + eax + 0xa8]
mov ecx, eax
add ecx, 0x893e81df
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x48
xor ecx, 0xa4
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xa8], cl
add eax, 1
jmp 0x4226ac
mov edi, dword [esp + 0xa8]
xor ebp, ebp
cmp ebp, dword [0x44d268]
jb 0x4226f4
jmp 0x422749
mov esi, ebx
mov eax, dword [0x44d26c]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x42270c
jmp 0x422739
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x422739
mov ecx, dword [0x44d270]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
call fcn.0043de40
test bl, 1
je 0x422742
mov ebx, esi
jmp 0x422749
add ebp, 1
mov ebx, esi
jmp 0x4226ea
and bl, 1
movzx eax, bl
add esp, 0xf0
pop esi
pop edi
pop ebx
pop ebp
ret