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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd0
mov esi, dword [esp + 0xe8]
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0x80]
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.0043c9a0
xor ecx, ecx
cmp eax, 0
jl 0x42188f
mov dword [esp], esi
call fcn.00414040
shl eax, 1
mov word [esp + 0xac], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xae], ax
mov dword [esp + 0xb0], esi
mov dword [esp], 0x848
call fcn.00438e30
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x80]
jmp 0x42116e
mov al, byte [esp + 0x88]
mov byte [esp + 0xa4], al
mov byte [esp + 0x50], 0xce
mov byte [esp + 0x51], 0xcd
mov byte [esp + 0x52], 0xcc
mov byte [esp + 0x53], 0xcb
xor eax, eax
cmp eax, 4
jae 0x4211bf
movzx edx, byte [esp + eax + 0x50]
mov edi, 0x76
sub edi, eax
or edi, edx
mov ecx, 0x76
sub ecx, eax
and ecx, edx
xor edi, 0xffffffff
or ecx, edi
add cl, 0xb8
mov byte [esp + eax + 0x50], cl
add eax, 1
jmp 0x421192
mov edi, dword [esp + 0x50]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x4486a8]
jb 0x4211d7
jmp 0x42128f
mov edx, dword [0x4486ac]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x4211f7
jmp 0x42127e
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x42127e
mov eax, dword [0x4486b0]
xor ecx, ecx
lea ecx, [esp + 0xc8]
lea ebx, [esp + 0xac]
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 + 0x6c]
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.0043a9b0
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x421287
jmp 0x42128f
add ebp, 1
jmp 0x4211c5
cmp ecx, 2
je 0x421296
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x4217be
mov dword [esp + 0x64], 0
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x6c]
jmp 0x4212b3
mov dword [esp + 0x58], ebp
mov edi, dword [esi + 0x3c]
shr edi, 1
mov eax, esi
add eax, 0x38
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0x38]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x400
add eax, ecx
cmp eax, 0
mov dword [esp + 0x3c], esi
jne 0x421499
mov al, byte [esp + 0x7c]
mov byte [esp + 0x8c], al
mov byte [esp + 0x48], 0x68
mov byte [esp + 0x49], 7
mov byte [esp + 0x4a], 8
mov byte [esp + 0x4b], 9
xor eax, eax
cmp eax, 4
jae 0x421367
mov cl, byte [esp + eax + 0x48]
mov dword [esp + 0xc4], ebx
movzx ebx, cl
mov ebp, eax
add ebp, 0x78e526b6
mov esi, 0x49
sub esi, eax
and esi, ebx
xor ebx, 0xffffffff
mov edx, ebp
and edx, ebx
or edx, esi
mov esi, 0x71ad949
sub esi, eax
mov ebx, 0x71ad949
sub ebx, eax
and esi, ebx
mov ebx, dword [esp + 0xc4]
or edx, esi
mov esi, dword [esp + 0x3c]
shl edx, 1
add edx, 2
add edx, ebp
add dl, cl
add dl, 0x50
mov byte [esp + eax + 0x48], dl
add eax, 1
jmp 0x421308
mov ebp, esi
add ebp, 0x44
lea eax, [esp + 0x48]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call 0x4218a0
cmp eax, 0
je 0x421499
mov al, byte [esp + 0x78]
mov byte [esp + 0x90], al
mov byte [esp + 0x5e], 0xa3
mov byte [esp + 0x5f], 0xde
mov byte [esp + 0x60], 0xa1
mov byte [esp + 0x61], 0xd0
mov byte [esp + 0x62], 0xd1
mov byte [esp + 0x63], 0xd2
xor eax, eax
cmp eax, 6
jae 0x4213dc
mov dl, byte [esp + eax + 0x5e]
mov esi, eax
shl esi, 1
and esi, 0xea
mov ecx, eax
xor ecx, 0x75
add ecx, esi
xor cl, dl
add cl, 0x58
mov byte [esp + eax + 0x5e], cl
add eax, 1
jmp 0x4213b4
lea eax, [esp + 0x5e]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call 0x4218a0
cmp eax, 0
mov esi, dword [esp + 0x3c]
jne 0x421402
mov ebp, dword [esp + 0x58]
jmp 0x42149f
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x42141d
mov ecx, eax
mov dword [esp], ecx
call fcn.00407f60
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00413c70
mov word [eax], 0
mov ecx, dword [esi + 0x28]
mov eax, dword [esp + 0xc0]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xf0]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], edi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0xec]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov ebp, dword [esp + 0x58]
mov dword [esp], edi
call fcn.00407f70
jmp 0x421497
jmp 0x42149f
mov ebp, dword [esp + 0x58]
jmp 0x42149f
cmp ebp, 0
je 0x4214aa
mov edi, dword [esp + 0x64]
jmp 0x4214cf
mov dword [esp], 0x10900
call fcn.00438e30
mov edi, eax
cmp edi, 0
jne 0x4214cb
xor ebp, ebp
mov eax, 2
mov edi, esi
jmp 0x4217a5
mov ebp, edi
jmp 0x4214cf
cmp edi, ebp
jne 0x42178c
mov al, byte [esp + 0x74]
mov byte [esp + 0x94], al
mov byte [esp + 0x44], 0x9d
mov byte [esp + 0x45], 0x87
mov byte [esp + 0x46], 0x9e
mov byte [esp + 0x47], 0x90
xor eax, eax
cmp eax, 4
jae 0x421535
movzx edx, byte [esp + eax + 0x44]
mov ecx, eax
add ecx, 0x1a9b6535
mov esi, 0xca
sub esi, eax
and esi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, esi
mov edx, ecx
shl edx, 1
and edx, 0xae
xor ecx, 0x57
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x4214f8
mov eax, dword [esp + 0x44]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb8], eax
mov al, byte [esp + 0x84]
mov byte [esp + 0xa8], al
mov byte [esp + 0x4c], 0xce
mov byte [esp + 0x4d], 0xcd
mov byte [esp + 0x4e], 0xcc
mov byte [esp + 0x4f], 0xcb
xor eax, eax
cmp eax, 4
jae 0x42159f
movzx edx, byte [esp + eax + 0x4c]
mov esi, 0x76
sub esi, eax
or esi, edx
mov ecx, 0x76
sub ecx, eax
and ecx, edx
xor esi, 0xffffffff
or ecx, esi
add cl, 0xb8
mov byte [esp + eax + 0x4c], cl
add eax, 1
jmp 0x421572
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
xor ebp, ebp
mov esi, dword [esp + 0x3c]
mov ecx, 2
cmp ebp, dword [0x4486a8]
jb 0x4215c3
jmp 0x42169e
mov eax, esi
mov esi, ebx
mov edx, dword [0x4486ac]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [esp + 0x3a], bl
test bl, 1
jne 0x4215eb
mov ebx, esi
mov esi, eax
jmp 0x42168d
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, dword [esp + 0x68]
mov ebx, esi
mov esi, eax
je 0x42168d
mov eax, dword [0x4486b0]
xor ecx, ecx
lea ecx, [esp + 0xc8]
lea esi, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xb8]
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 + 0xbc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x34], 0
call fcn.0043a9b0
mov dword [esp + 0xb4], eax
mov ecx, 1
test byte [esp + 0x3a], 1
je 0x421696
jmp 0x42169e
add ebp, 1
jmp 0x4215b1
cmp ecx, 2
je 0x4216ae
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x68], eax
mov al, byte [esp + 0x70]
mov byte [esp + 0x98], al
mov byte [esp + 0x40], 0x56
mov byte [esp + 0x41], 0x54
mov byte [esp + 0x42], 0x55
mov byte [esp + 0x43], 0xd6
xor eax, eax
cmp eax, 4
jae 0x42171d
movzx edx, byte [esp + eax + 0x40]
mov ecx, 0xf4
sub ecx, eax
and ecx, edx
mov esi, ebx
mov ebx, 0xe72852f4
sub ebx, eax
mov ebp, 0xe72852f4
sub ebp, eax
and ebx, ebp
or ebx, edx
xor ebx, 0xffffffff
or ecx, ebx
mov ebx, esi
mov esi, dword [esp + 0x3c]
mov edx, ecx
and edx, 0x59
xor edx, 0x59
and ecx, 0xa6
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0x40], cl
add eax, 1
jmp 0x4216cf
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
cmp ecx, eax
mov eax, ecx
mov ebp, dword [esp + 0x58]
jne 0x421767
xor eax, eax
mov edx, edi
jmp 0x421735
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x42174c
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x421735
cmp eax, 0
setne cl
test cl, 1
mov esi, dword [esp + 0x3c]
jne 0x42175d
jmp 0x421763
mov dword [eax], 0
xor eax, eax
jmp 0x421767
cmp eax, 0
jge 0x42177b
mov dword [esp], ebp
call fcn.00438e70
mov eax, 2
jmp 0x42177f
xor eax, eax
jmp 0x42177f
cmp eax, 0
je 0x42178c
mov dword [esp + 0x64], edi
mov edi, esi
jmp 0x4217a5
mov eax, dword [edi]
cmp eax, 0
je 0x42179d
mov ecx, edi
add ecx, eax
mov dword [esp + 0x64], ecx
jmp 0x4217a3
mov dword [esp + 0x64], ebp
jmp 0x4217a3
xor eax, eax
test eax, eax
mov esi, edi
je 0x4212b3
jmp 0x4217b1
sub eax, 2
jne 0x4218a0
jmp 0x4217bc
jmp 0x4217be
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00438e70
mov esi, dword [esp + 0x80]
mov al, byte [esp + 0x9c]
mov byte [esp + 0xa0], al
mov byte [esp + 0x54], 0xce
mov byte [esp + 0x55], 0xcd
mov byte [esp + 0x56], 0xcc
mov byte [esp + 0x57], 0xcb
xor eax, eax
cmp eax, 4
jae 0x421822
movzx edx, byte [esp + eax + 0x54]
mov edi, 0x76
sub edi, eax
or edi, edx
mov ecx, 0x76
sub ecx, eax
and ecx, edx
xor edi, 0xffffffff
or ecx, edi
add cl, 0xb8
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x4217f5
mov ebp, ebx
mov edi, dword [esp + 0x54]
xor ebx, ebx
cmp ebx, dword [0x4486a8]
jb 0x421834
jmp 0x42188d
mov eax, dword [0x4486ac]
cmp dword [eax + ebx*8], 0xb430e561
sete cl
test cl, 1
jne 0x42184a
jmp 0x421878
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
je 0x421878
mov byte [esp + 0x39], cl
mov ecx, dword [0x4486b0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.0043a9b0
mov cl, byte [esp + 0x39]
test cl, 1
je 0x42187f
jmp 0x42188d
mov eax, ebx
shl eax, 1
and eax, 2
xor ebx, 1
add ebx, eax
jmp 0x42182a
mov ecx, ebp
and cl, 1
movzx eax, cl
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ecx, edi
je 0x4218dc
movzx ebx, word [esi + edi*2]
movzx ebp, word [edx + edi*2]
cmp bx, bp
jne 0x4218d8
inc edi
test ebx, ebx
jne 0x4218c0
jmp 0x4218dc
sub ebx, ebp
mov eax, ebx
pop esi
pop edi
pop ebx
pop ebp
ret