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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
call fcn.00414f70
push eax
mov ebx, esp
sub esp, 8
mov dword [ebp - 0x7c], esp
sub esp, 8
mov dword [ebp - 0x4c], esp
push eax
mov dword [ebp - 0x48], esp
push eax
mov dword [ebp - 0xa4], esp
sub esp, 8
mov dword [ebp - 0x38], esp
push eax
mov dword [ebp - 0xa0], esp
push eax
mov dword [ebp - 0x44], esp
push eax
mov dword [ebp - 0x9c], esp
push eax
mov dword [ebp - 0x34], esp
push eax
mov dword [ebp - 0x98], esp
jmp 0x4219d6
sub esp, 0x14
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.0043e220
add esp, 0x14
xor ecx, ecx
cmp eax, 0
jl 0x42219d
sub esp, 4
mov dword [esp], esi
call fcn.00414f50
add esp, 4
shl eax, 1
mov edx, dword [ebp - 0x4c]
mov word [edx], ax
movzx eax, ax
xor ecx, ecx
sub ecx, eax
add ecx, 0xfffffffe
xor eax, eax
sub eax, ecx
mov word [edx + 2], ax
mov dword [edx + 4], esi
sub esp, 4
mov dword [esp], 0x848
call fcn.0043a7f0
add esp, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebx]
mov dword [ebp - 0x80], eax
mov al, byte [ebp - 0x54]
mov byte [ebp - 0x70], al
mov byte [ebp - 0x20], 0x64
mov byte [ebp - 0x1f], 0x63
mov byte [ebp - 0x1e], 0x62
mov byte [ebp - 0x1d], 0x61
xor eax, eax
cmp eax, 4
jae 0x421a97
movzx edx, byte [ebp + eax - 0x20]
mov ecx, 0xc
sub ecx, eax
or ecx, edx
mov edi, eax
add edi, 0xf3
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov dl, 0x67
sub dl, cl
mov byte [ebp + eax - 0x20], dl
add eax, 1
jmp 0x421a68
mov dword [ebp - 0x3c], ebx
mov edi, dword [ebp - 0x20]
xor esi, esi
mov ecx, 2
cmp esi, dword [0x44957c]
jb 0x421ab1
jmp 0x421b71
mov edx, dword [0x449580]
cmp dword [edx + esi*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [ebp - 0xd], bl
test bl, 1
jne 0x421ad3
mov dl, byte [ebp - 0xd]
jmp 0x421b62
mov ecx, dword [edx + esi*8 + 4]
cmp ecx, edi
jne 0x421ae5
mov ecx, 2
mov dl, byte [ebp - 0xd]
jmp 0x421b62
mov eax, dword [0x449584]
xor edx, edx
sub esp, 0x38
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2c
mov eax, dword [ebp - 0x80]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043c320
add esp, 0x38
mov ecx, 1
mov dl, byte [ebp - 0xd]
test dl, 1
je 0x421b69
jmp 0x421b71
add esi, 1
jmp 0x421a9f
cmp ecx, 2
mov ebx, dword [ebp - 0x3c]
je 0x421b7b
mov edi, eax
xor ecx, ecx
cmp edi, 0
jl 0x4220ce
mov dword [ebp - 0x2c], 0
xor ecx, ecx
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x40]
jmp 0x421b9b
mov edi, dword [eax + 0x3c]
shr edi, 1
mov edx, eax
add edx, 0x38
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x421d88
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xa4]
mov al, byte [eax]
mov byte [ebp - 0x58], al
mov eax, dword [ebp - 0x48]
mov byte [eax], 0xe7
mov byte [eax + 1], 0xda
mov byte [eax + 2], 0xdb
mov byte [eax + 3], 0xdc
xor eax, eax
cmp eax, 4
jae 0x421bfe
mov esi, dword [ebp - 0x48]
mov cl, byte [esi + eax]
mov dl, al
add dl, 0x51
xor dl, cl
add dl, 0x78
mov byte [esi + eax], dl
add eax, 1
jmp 0x421be1
mov esi, dword [ebp - 0x30]
add esi, 0x44
sub esp, 0xc
mov dword [esp], esi
mov eax, dword [ebp - 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004221b0
add esp, 0xc
cmp eax, 0
mov ecx, dword [ebp - 0x18]
je 0x421d88
mov eax, dword [ebp - 0xa0]
mov al, byte [eax]
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x38]
mov byte [eax], 0xdc
mov byte [eax + 1], 0xf3
mov byte [eax + 2], 0xda
mov byte [eax + 3], 0xf5
mov byte [eax + 4], 0xf6
mov byte [eax + 5], 0xf7
xor eax, eax
cmp eax, 6
jae 0x421cbc
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0xc5d7b9e2
xor ecx, edx
mov edx, ecx
and edx, 0xed
mov ebx, ecx
and ebx, 0xed
mov dword [ebp - 0x88], esi
mov esi, ecx
and esi, 2
xor esi, 2
imul esi, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
mov ebx, dword [ebp - 0x3c]
add edx, esi
mov esi, ecx
shl esi, 1
and esi, 0xde
add esi, 0x11
sub ecx, esi
mov esi, dword [ebp - 0x88]
add ecx, edx
add cl, 1
mov edx, dword [ebp - 0x38]
mov byte [edx + eax], cl
add eax, 1
jmp 0x421c50
sub esp, 0xc
mov dword [esp], esi
mov eax, dword [ebp - 0x38]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004221b0
add esp, 0xc
cmp eax, 0
jne 0x421ce2
mov ecx, dword [ebp - 0x18]
jmp 0x421d88
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x421cfd
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408bd0
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov edi, eax
call fcn.00414b80
add esp, 0xc
mov word [eax], 0
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 0x94]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
sub esp, 0x10
mov edx, dword [ebp + 0x14]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], edi
and eax, 1
mov dword [esp + 4], eax
call dword [ebp + 0x10]
add esp, 0x10
and al, 1
movzx eax, al
mov ecx, dword [ebp - 0x18]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne al
and al, 1
mov esi, eax
sub esp, 4
mov dword [esp], edi
call fcn.00408be0
add esp, 4
mov ecx, esi
jmp 0x421d88
cmp dword [ebp - 0x14], 0
je 0x421d93
mov edi, dword [ebp - 0x2c]
jmp 0x421dcb
mov esi, ecx
sub esp, 4
mov dword [esp], 0x10900
call fcn.0043a7f0
add esp, 4
mov edi, eax
cmp edi, 0
jne 0x421dc4
mov dword [ebp - 0x14], 0
mov eax, 2
mov edi, dword [ebp - 0x30]
mov ecx, esi
jmp 0x4220c0
mov ecx, esi
mov dword [ebp - 0x14], edi
jmp 0x421dcb
cmp edi, dword [ebp - 0x14]
jne 0x4220a6
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x9c]
mov al, byte [eax]
mov byte [ebp - 0x60], al
mov eax, dword [ebp - 0x44]
mov byte [eax], 6
mov byte [eax + 1], 0xe
mov byte [eax + 2], 9
mov byte [eax + 3], 9
xor eax, eax
mov dword [ebp - 0x78], edi
cmp eax, 4
jae 0x421e25
mov edi, dword [ebp - 0x44]
mov dl, byte [edi + eax]
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
xor cl, dl
add cl, 0x50
mov byte [edi + eax], cl
mov edi, dword [ebp - 0x78]
add eax, 1
jmp 0x421df9
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [ebp - 0x90], eax
mov eax, dword [ebx]
mov dword [ebp - 0x8c], eax
mov al, byte [ebp - 0x50]
mov byte [ebp - 0x74], al
mov byte [ebp - 0x1c], 0x64
mov byte [ebp - 0x1b], 0x63
mov byte [ebp - 0x1a], 0x62
mov byte [ebp - 0x19], 0x61
xor eax, eax
cmp eax, 4
jae 0x421e7f
movzx edx, byte [ebp + eax - 0x1c]
mov ecx, 0xc
sub ecx, eax
or ecx, edx
mov ebx, eax
add ebx, 0xf3
xor edx, 0xffffffff
or ebx, edx
and ecx, ebx
mov dl, 0x67
sub dl, cl
mov byte [ebp + eax - 0x1c], dl
add eax, 1
jmp 0x421e50
mov edx, dword [ebp - 0x1c]
xor esi, esi
mov ecx, 2
cmp esi, dword [0x44957c]
jb 0x421e96
jmp 0x421f5c
mov dword [ebp - 0x28], edx
mov edx, dword [0x449580]
cmp dword [edx + esi*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [ebp - 0xf], bl
test bl, 1
jne 0x421ebb
mov edx, dword [ebp - 0x28]
jmp 0x421f4c
mov ecx, dword [edx + esi*8 + 4]
mov edx, dword [ebp - 0x28]
cmp ecx, edx
jne 0x421ecd
mov ecx, 2
jmp 0x421f4c
mov eax, dword [0x449584]
xor edx, edx
sub esp, 0x38
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2c
mov eax, dword [ebp - 0x8c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
mov eax, dword [ebp - 0x90]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043c320
mov edx, dword [ebp - 0x28]
add esp, 0x38
mov ecx, 1
test byte [ebp - 0xf], 1
je 0x421f54
jmp 0x421f5c
add esi, 1
jmp 0x421e84
cmp ecx, 2
mov ebx, dword [ebp - 0x3c]
je 0x421f66
mov edx, eax
mov eax, dword [ebp - 0x98]
mov al, byte [eax]
mov byte [ebp - 0x64], al
mov eax, dword [ebp - 0x34]
mov byte [eax], 0xc9
mov byte [eax + 1], 0xcd
mov byte [eax + 2], 0xce
mov byte [eax + 3], 0x4f
xor eax, eax
cmp eax, 4
jae 0x422033
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0x1f5bf0ac
mov esi, 0xe0a40f53
sub esi, eax
and esi, 0x9070193c
and ecx, 0x6f8fe6c3
or esi, ecx
mov ecx, esi
xor ecx, edx
xor ecx, 0x6f8fe6c3
xor esi, 0xc3
and esi, edx
or ecx, esi
mov esi, 0xe0a40f53
sub esi, eax
mov ebx, 0xe0a40f53
sub ebx, eax
and esi, ebx
mov ebx, 0xe0a40f53
sub ebx, eax
mov edi, 0xe0a40f53
sub edi, eax
and ebx, edi
or esi, ebx
mov ebx, dword [ebp - 0x3c]
mov edi, esi
shl edi, 1
xor edi, 0xffffffff
add esi, edi
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edi, edx
or esi, edi
xor esi, 0xffffffff
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or ecx, esi
mov edx, ecx
shl edx, 1
and edx, 0x3e
xor ecx, 0x9f
add ecx, edx
mov edx, dword [ebp - 0x28]
add cl, 1
mov esi, dword [ebp - 0x34]
mov byte [esi + eax], cl
add eax, 1
jmp 0x421f85
mov eax, dword [ebp - 0x34]
cmp edx, dword [eax]
sete al
mov edi, dword [ebp - 0x78]
jmp 0x422040
test al, 1
jne 0x422046
jmp 0x422072
xor eax, eax
mov edx, edi
jmp 0x42204c
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x422063
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x42204c
cmp eax, 0
je 0x42206e
mov dword [eax], 0
xor edx, edx
jmp 0x422072
cmp edx, 0
jge 0x422092
sub esp, 4
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call fcn.0043a810
add esp, 4
mov eax, 2
mov ecx, dword [ebp - 0x18]
jmp 0x422099
xor eax, eax
mov ecx, dword [ebp - 0x18]
jmp 0x422099
cmp eax, 0
je 0x4220a6
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x30]
jmp 0x4220c0
mov eax, dword [edi]
cmp eax, 0
je 0x4220b6
mov edx, edi
add edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x4220be
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
jmp 0x4220be
xor eax, eax
test eax, eax
mov eax, edi
je 0x421b9b
jmp 0x4220cc
jmp 0x4220ce
mov esi, ecx
sub esp, 4
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call fcn.0043a810
add esp, 4
mov eax, dword [ebx]
mov dword [ebp - 0x84], eax
mov al, byte [ebp - 0x68]
mov byte [ebp - 0x6c], al
mov byte [ebp - 0x24], 0x64
mov byte [ebp - 0x23], 0x63
mov byte [ebp - 0x22], 0x62
mov byte [ebp - 0x21], 0x61
xor eax, eax
cmp eax, 4
jae 0x422130
movzx edx, byte [ebp + eax - 0x24]
mov ecx, 0xc
sub ecx, eax
or ecx, edx
mov edi, eax
add edi, 0xf3
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov dl, 0x67
sub dl, cl
mov byte [ebp + eax - 0x24], dl
add eax, 1
jmp 0x422101
mov edi, dword [ebp - 0x24]
xor ebx, ebx
mov ecx, esi
cmp ebx, dword [0x44957c]
jb 0x422141
jmp 0x42219d
mov eax, dword [0x449580]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x422157
jmp 0x422191
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
je 0x422191
mov ecx, dword [0x449584]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [ebp - 0x84]
mov dword [esp + 0xc], eax
mov byte [ebp - 0xe], dl
call fcn.0043c320
mov dl, byte [ebp - 0xe]
mov ecx, esi
add esp, 0x10
test dl, 1
je 0x422198
jmp 0x42219d
add ebx, 1
jmp 0x422137
and cl, 1
movzx eax, cl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret