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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [0x44e834]
xor eax, ebp
mov dword [esp + 0x98], eax
push dword [ebp + 0xc]
call fcn.0042c7e0
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
movsd xmm0, qword [ecx + eax + 0x20]
mov eax, 0xa4b33285
movsd qword [esp + 0x50], xmm0
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, 0xd8c8dafc
mov dword [esp + 0x14], 4
nop dword [eax + eax]
cmp eax, 0xf96bffb
jg 0x402640
cmp eax, 0xd6b820a4
jg 0x4022d0
cmp eax, 0xa4b33284
jle 0x402335
cmp eax, 0xa4b33285
je 0x4023b7
cmp eax, 0xc3ef17b5
je 0x4023d4
cmp eax, 0xc75cef68
jne 0x402130
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + eax + 0x38]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov al, byte [ecx + eax + 0x40]
mov ecx, 0x7a90d4ee
mov byte [esp + 0x20], al
movzx esi, al
mov eax, dword [ebx + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x90], eax
nop word cs:[eax + eax]
cmp ecx, 0xf3a2fcec
je 0x4021fb
cmp ecx, 0xd793874
je 0x4021e9
cmp ecx, 0x7a90d4ee
jne 0x4021b0
cmp dword [esp + 0x90], 0
mov ecx, 0xd793874
mov eax, 0xf3a2fcec
cmove ecx, eax
xor eax, eax
cmp ecx, 0xf3a2fcec
jne 0x4021b8
jmp 0x4021fb
mov eax, dword [ebx + 0x30]
mov ecx, 0xf3a2fcec
mov eax, dword [eax]
cmp ecx, 0xf3a2fcec
jne 0x4021b8
mov dword [esp + 0x90], eax
sar eax, 0x1f
mov ecx, 0xed9634a3
mov dword [esp + 0x94], eax
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0x241bcf8a
jg 0x402270
cmp ecx, 0xed9634a3
je 0x40223d
cmp ecx, 0x14ecf85b
jne 0x402220
jmp 0x40241f
xor ecx, ecx
mov edx, 0x241bcf8b
cmp ecx, dword [esp + 0x90]
mov ecx, 0
sbb ecx, dword [esp + 0x94]
mov ecx, 0x62231d78
cmovl ecx, edx
cmp ecx, 0x241bcf8a
jle 0x402228
nop word [eax + eax]
cmp ecx, 0x241bcf8b
je 0x402297
cmp ecx, 0x62231d78
jne 0x402220
mov eax, dword [ebx]
mov ecx, ebx
push esi
call dword [eax + 0xc]
mov ecx, 0x14ecf85b
cmp ecx, 0x241bcf8a
jle 0x402228
jmp 0x402270
mov eax, dword [ebx + 0x30]
dec dword [eax]
mov eax, dword [ebx + 0x20]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
movzx eax, byte [esp + 0x20]
mov byte [ecx], al
mov ecx, 0x14ecf85b
mov eax, esi
cmp ecx, 0x241bcf8a
jle 0x402228
jmp 0x402270
cmp eax, 0xdfb66d15
jle 0x402368
cmp eax, 0xdfb66d16
je 0x402431
cmp eax, 0xeea079bb
je 0x40248f
cmp eax, 0xf2827487
jne 0x402130
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + eax + 0x38]
mov eax, dword [ecx]
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [ebp + 0xc]
call dword [eax + 0x24]
xor edx, dword [esp + 0x44]
xor eax, dword [esp + 0x40]
mov ecx, 0x61018b51
or eax, edx
mov eax, 0x8f9e9fa4
jmp 0x40277f
cmp eax, 0x8a4d0cd8
je 0x40211b
cmp eax, 0x8f9e9fa4
jne 0x402130
mov eax, 0x61018b51
mov dword [esp + 8], 4
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
cmp eax, 0xd6b820a5
je 0x4025e2
cmp eax, 0xd8c8dafc
jne 0x402130
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov dword [ecx + eax + 0x24], 0
mov dword [ecx + eax + 0x20], 0
mov eax, 0xf96bffc
mov dword [esp + 0x34], edx
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
cmp eax, 1
mov eax, 0x6da4b012
sbb ecx, 0
mov ecx, 0xd6b820a5
jmp 0x4028f5
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ecx, 0xf294ebdb
mov eax, 0x2d86fd4e
mov esi, 0x383710ce
mov edx, 0xe76d245
add ebx, ecx
adc edi, eax
sub ebx, esi
sbb edi, edx
sub ebx, ecx
sbb edi, eax
add ebx, esi
mov eax, 0x47f0e6d8
adc edi, edx
add ebx, 0xffffffff
mov dword [esp + 0x24], ebx
adc edi, 0xffffffff
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
cmp eax, 0xffffffff
mov eax, 0xc3ef17b5
mov ecx, 0x371b1269
jmp 0x402625
mov eax, dword [esp + 0x4c]
mov esi, 0xac7db819
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x20]
mov eax, dword [ecx + eax + 0x24]
mov ecx, 0xdbee0d4f
add edx, esi
mov esi, 0xac7db819
adc eax, ecx
sub esi, edx
mov edx, 0xdbee0d4f
sbb edx, eax
add esi, dword [esp + 0x40]
mov eax, 0
adc edx, dword [esp + 0x44]
neg esi
mov dword [esp + 4], esi
sbb eax, edx
mov dword [esp + 0x10], eax
mov eax, 0xd6b820a5
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + eax + 0x38]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov al, byte [ecx + eax + 0x40]
mov ecx, 0x7a90d4ee
mov byte [esp + 0x20], al
movzx esi, al
mov eax, dword [ebx + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x90], eax
nop word [eax + eax]
cmp ecx, 0xf3a2fcec
je 0x40251b
cmp ecx, 0xd793874
je 0x402509
cmp ecx, 0x7a90d4ee
jne 0x4024d0
cmp dword [esp + 0x90], 0
mov ecx, 0xd793874
mov eax, 0xf3a2fcec
cmove ecx, eax
xor eax, eax
cmp ecx, 0xf3a2fcec
jne 0x4024d8
jmp 0x40251b
mov eax, dword [ebx + 0x30]
mov ecx, 0xf3a2fcec
mov eax, dword [eax]
cmp ecx, 0xf3a2fcec
jne 0x4024d8
mov dword [esp + 0x90], eax
sar eax, 0x1f
mov ecx, 0xed9634a3
mov dword [esp + 0x94], eax
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0x241bcf8a
jg 0x402590
cmp ecx, 0xed9634a3
je 0x40255d
cmp ecx, 0x14ecf85b
jne 0x402540
jmp 0x402618
xor ecx, ecx
mov edx, 0x241bcf8b
cmp ecx, dword [esp + 0x90]
mov ecx, 0
sbb ecx, dword [esp + 0x94]
mov ecx, 0x62231d78
cmovl ecx, edx
cmp ecx, 0x241bcf8a
jle 0x402548
nop word [eax + eax]
cmp ecx, 0x241bcf8b
je 0x4025b7
cmp ecx, 0x62231d78
jne 0x402540
mov eax, dword [ebx]
mov ecx, ebx
push esi
call dword [eax + 0xc]
mov ecx, 0x14ecf85b
cmp ecx, 0x241bcf8a
jle 0x402548
jmp 0x402590
mov eax, dword [ebx + 0x30]
dec dword [eax]
mov eax, dword [ebx + 0x20]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
movzx eax, byte [esp + 0x20]
mov byte [ecx], al
mov ecx, 0x14ecf85b
mov eax, esi
cmp ecx, 0x241bcf8a
jle 0x402548
jmp 0x402590
mov eax, dword [esp + 4]
lea ecx, [esp + 0x38]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
push dword [esp + 0x30]
call fcn.0040a220
cmp byte [esp + 0x3c], 0
mov eax, 0x6b48fe4d
mov ecx, 0x2968557c
jmp 0x402625
cmp eax, 0xffffffff
mov eax, 0x6e960c82
mov ecx, 0x8a4d0cd8
cmove eax, ecx
cmp eax, 0xf96bffb
jle 0x40213b
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0x47f0e6d7
jle 0x4026d0
cmp eax, 0x6b48fe4c
jle 0x4026fd
cmp eax, 0x6b48fe4d
je 0x40279a
cmp eax, 0x6da4b012
je 0x4028cf
cmp eax, 0x6e960c82
jne 0x402130
mov eax, 0xccba98d8
mov esi, 0x9dc18c0d
mov ecx, 0x6e47f4c0
mov edx, 0x8f186522
add eax, esi
adc ecx, edx
add eax, dword [esp + 0x80]
adc ecx, dword [esp + 0x84]
sub eax, esi
mov esi, 0xccba98d8
not esi
sbb ecx, edx
add esi, eax
mov eax, 0x6e47f4c0
not eax
mov dword [esp + 0x2c], esi
adc eax, ecx
mov dword [esp + 0x28], eax
mov eax, 0x3aebc152
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
cmp eax, 0x3aebc151
jg 0x402742
cmp eax, 0x2968557c
je 0x402918
cmp eax, 0x371b1269
je 0x402935
cmp eax, 0xf96bffc
jne 0x402130
jmp 0x402a02
cmp eax, 0x47f0e6d8
je 0x402962
cmp eax, 0x61018b51
jne 0x402130
mov eax, dword [esp + 8]
mov ecx, 0x3aebc152
mov dword [esp + 0x7c], eax
mov eax, 0xd8c8dafc
cmp dword [esp + 0x7c], 0
cmove eax, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
jmp 0x4029ea
cmp eax, 0x3aebc152
je 0x4029b2
cmp eax, 0x42f5ae02
jne 0x402130
mov eax, dword [esp + 0x1c]
mov ecx, 0xf2827487
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov eax, 0x61018b51
cmp dword [esp + 0x78], 0
mov edx, dword [esp + 0x78]
cmove eax, ecx
mov dword [esp + 8], edx
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + eax + 0x14]
mov edx, ecx
or ecx, 0x14ca0f1e
not edx
mov esi, ecx
and ecx, 0xfae5f4eb
or edx, 0xeb35f0e1
not esi
mov eax, edx
and esi, 0x1100000
and edx, 0xfae5f4eb
not eax
or esi, ecx
and eax, 0x40a0b14
or eax, edx
xor eax, esi
mov ecx, eax
and eax, 0xeb35f0e1
not ecx
and ecx, 0x14ca0f1e
or eax, ecx
mov ecx, eax
mov edx, eax
xor ecx, 0x1c0
not edx
and ecx, eax
and edx, 0xfffffe3f
and eax, 0x1c0
or eax, edx
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
xor ecx, 0x8cef93b1
and ecx, eax
or eax, 0x73106c4e
mov esi, ecx
mov edx, eax
mov edi, eax
and ecx, 0x5f416b0e
not edx
not esi
and edi, 0xa0be94f1
or eax, esi
and edx, 0xc410300
and esi, 0xa0be94f1
or edx, edi
or ecx, esi
not eax
xor ecx, edx
or eax, ecx
mov ecx, eax
and eax, 0xd33a7cc9
not ecx
and ecx, 0x2cc58336
or eax, ecx
mov ecx, eax
xor eax, 0xa0000006
xor ecx, 0x1a15a530
and eax, 0xe5c04a4e
and ecx, 0x1a3fb5b1
or ecx, eax
mov eax, ecx
xor ecx, 0x540004a
xor eax, 0x123494b1
and ecx, 0xd4b214a
and eax, 0xf2b4deb5
or eax, ecx
mov ecx, 0x42f5ae02
xor eax, 0xf2b4deb5
cmp eax, 0x40
mov eax, 0x47f0e6d8
cmove eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x64]
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
jmp 0x40299e
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
cmp edx, dword [ecx + eax + 0x20]
sbb esi, dword [ecx + eax + 0x24]
mov eax, 0xd6b820a5
mov ecx, 0xdfb66d16
cmovl eax, ecx
mov dword [esp + 4], 0
mov dword [esp + 0x10], 0
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, 0xf96bffc
mov dword [esp + 0x34], 4
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], 4
mov dword [esp + 0x18], eax
mov eax, 0x42f5ae02
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x24]
mov dword [esp + 0x6c], edi
mov dword [esp + 0xc], 0
mov ecx, 0xc75cef68
mov dword [esp + 0x68], eax
xor eax, eax
cmp eax, dword [esp + 0x68]
mov eax, 0
sbb eax, dword [esp + 0x6c]
mov eax, 0x42f5ae02
cmovl eax, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x2c]
mov ecx, 0xeea079bb
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], eax
xor eax, eax
cmp eax, dword [esp + 0x80]
mov eax, 0
sbb eax, dword [esp + 0x84]
mov eax, 0xd8c8dafc
cmovl eax, ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
cmp eax, 0xf96bffb
jle 0x40213b
jmp 0x402640
mov eax, dword [esp + 0x4c]
mov edi, 0xb8f0a1a4
mov eax, dword [eax]
mov eax, dword [eax + 4]
add eax, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [0x44f518]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov esi, ecx
not eax
and esi, 1
mov edx, eax
and edx, 0xfffffffe
or esi, edx
mov edx, esi
and esi, ecx
mov ecx, dword [0x44f51c]
not edx
and eax, edx
or esi, eax
xor edx, esi
test edx, esi
mov esi, 0xb8f0a1a4
sete al
setne dl
sete byte [esp + 0x8e]
cmp ecx, 9
setg ah
cmp ecx, 0xa
mov ch, dl
setl cl
setl byte [esp + 0x8f]
and ch, ah
and dl, cl
and cl, al
or cl, ch
mov ch, cl
xor ch, ah
and ah, al
and ch, cl
or ah, dl
mov edx, 0x5ea4b616
xor ch, 1
xor ah, 1
mov al, ch
or al, ah
xor ah, ch
mov ecx, eax
xor cl, ah
test cl, 1
cmovne edi, edx
test ah, ah
cmove esi, edi
test al, al
mov eax, 0xa5516ae7
cmovne esi, edi
mov edi, 0x4cc5269d
cmp eax, 0x4cc5269c
jg 0x402bd0
cmp eax, 0xa5516ae7
je 0x402ace
cmp eax, 0xb8f0a1a4
jne 0x402ab0
jmp 0x402c11
movzx eax, byte [esp + 0x8e]
movzx ecx, byte [esp + 0x8f]
mov ah, cl
mov edx, ecx
mov bh, al
xor ah, 1
xor bh, 1
mov bl, ah
or ah, cl
and bl, cl
xor bl, 1
xor dl, bl
or bl, cl
xor bl, 1
or bl, dl
mov dl, bh
or dl, al
mov dh, dl
mov ecx, edx
mov ch, dl
xor dh, 1
and cl, dh
and ch, cl
xor cl, dl
mov dl, bl
or cl, ch
xor dl, 1
mov ch, cl
xor cl, 1
and ch, bh
and cl, al
or cl, ch
mov ch, bh
xor ch, dh
or dh, bh
xor dh, 1
or dh, ch
mov ch, cl
xor dh, 1
and ch, dh
xor dh, cl
mov cl, ah
or dh, ch
mov ch, bl
xor cl, 1
xor ch, ah
and cl, dl
and ah, bl
and ch, bl
or ah, cl
mov cl, ch
xor ch, ah
xor ah, 1
xor cl, 1
or ah, cl
xor ah, 1
or ah, ch
mov ch, dh
xor ch, 1
mov cl, ch
and cl, dh
xor ch, cl
xor cl, 1
or cl, dh
mov dh, al
xor cl, 1
or cl, ch
mov ch, dl
xor cl, ah
mov ah, al
and ch, bl
or bl, bh
and ah, bh
xor bl, 1
and dh, ah
xor ah, al
or ah, dh
mov dh, dl
and dh, ch
xor ch, dl
xor dl, al
or ch, dh
or bl, dl
mov edx, ecx
xor ch, ah
xor bl, 1
mov al, ch
and al, bl
xor bl, ch
or bl, al
mov eax, 0x5ea4b616
or dl, bl
xor bl, cl
mov ecx, edx
xor cl, bl
test bl, 1
mov ebx, 0x5ea4b616
cmovne eax, edi
test dl, 1
cmovne eax, ebx
test cl, 1
cmove eax, edi
cmp eax, 0x4cc5269c
jle 0x402abb
nop
cmp eax, 0x4cc5269d
je 0x402bf4
cmp eax, 0x5ea4b616
jne 0x402ab0
mov eax, 0x4cc5269d
cmp eax, 0x4cc5269c
jle 0x402abb
jmp 0x402bd0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x90], eax
mov eax, esi
cmp eax, 0x4cc5269c
jle 0x402abb
jmp 0x402bd0
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x34]
mov eax, edx
mov esi, edx
mov dword [esp + 0x10], edx
mov ebx, edi
not eax
xor esi, 0xfe5e7dfa
and ebx, 0xe0ccd13d
mov ecx, eax
and esi, edx
and eax, 0xcc99b02c
and ecx, 0xfe5e7dfa
mov edx, ecx
and edx, esi
xor esi, ecx
or esi, edx
mov ecx, esi
and esi, 0xdc9258ee
not ecx
and ecx, 0x236da711
or esi, ecx
mov ecx, edi
not ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 4], ecx
and ecx, 0x1f332ec2
or ebx, ecx
mov ecx, ebx
xor ebx, 0x8202c02
or ebx, 0x575f92c8
xor ecx, 0x80000110
mov edx, ebx
and ecx, 0x80200512
and edx, 0x6dd4fa2d
or ecx, edx
mov edx, edi
xor edx, 0xa8a06d37
and edx, edi
and edi, 0x33664fd3
mov esi, edx
and edx, 0x922b05d2
not esi
or ebx, esi
and esi, 0x6dd4fa2d
or edx, esi
not ebx
xor edx, ecx
or ebx, edx
mov ecx, ebx
and ebx, 0x7a2d386c
not ecx
and ecx, 0x85d2c793
or ebx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], ebx
mov edx, ecx
mov esi, ecx
xor esi, 0xdd33daeb
xor edx, 0x22cc2514
mov ecx, esi
mov dword [esp + 0x2c], esi
mov esi, edx
mov dword [esp + 0x28], edx
and ecx, 0x1faf0dfa
and esi, 0xe050f205
or esi, ecx
mov edx, esi
xor esi, 0x18d0410
xor edx, 0xe050f205
and esi, 0x418de415
mov ecx, edx
and edx, 0x33664fd3
and ecx, 0xbe721bea
or ecx, esi
xor ecx, 0x72ebabc6
or edx, ecx
mov ecx, edx
and edx, 0x97260b46
not ecx
and ecx, 0x68d9f4b9
or edx, ecx
mov ecx, dword [esp + 0x10]
xor ecx, 0x33664fd3
or ecx, eax
mov eax, ecx
and ecx, 0xb2b55c38
not eax
and eax, 0x4d4aa3c7
or ecx, eax
mov eax, ebx
mov esi, ecx
mov ecx, ebx
xor eax, 0x2d72aaa4
xor ecx, 0xd28d555b
mov dword [esp + 0x18], eax
and eax, 0x33664fd3
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], ecx
and ecx, 0xcc99b02c
or ecx, eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 4]
mov eax, ecx
and eax, 0xcc99b02c
or edi, eax
xor ecx, edi
and ecx, edi
mov dword [esp + 4], ecx
mov ecx, edx
xor edx, 0x68d9f4b9
mov eax, edx
xor ecx, 0x17260044
or edx, 0xb1d2e5fa
and eax, 0xa8c9db9a
and ecx, 0x57362465
or ecx, eax
mov eax, esi
xor esi, 0x367b9c2
xor eax, 0xb2b55c38
mov ebx, esi
and esi, eax
mov eax, ecx
xor ecx, 0x191b3e60
xor eax, 0x57362465
mov dword [esp + 0x10], esi
and ecx, eax
mov esi, ecx
and ecx, 0xaca4126f
not esi
mov edi, esi
or esi, edx
and edi, 0x535bed90
not esi
or ecx, edi
mov edi, edx
and edx, 0x535bed90
not edi
and edi, 0xc241205
or edi, edx
xor edi, ecx
mov ecx, dword [esp + 0xc]
or esi, edi
mov edi, dword [esp + 0x10]
xor ecx, 0x4d4aa3c7
and ebx, ecx
mov dword [esp + 0xc], ecx
mov ecx, ebx
and ebx, 0x5c927f7c
not ecx
mov edx, ecx
and edx, 0xa36d8083
or ebx, edx
mov edx, edi
and edi, 0x5c927f7c
not edx
or ecx, edx
and edx, 0xa36d8083
or edi, edx
mov edx, esi
not ecx
xor edi, ebx
not edx
or ecx, edi
and edx, ecx
not ecx
and ecx, esi
mov esi, dword [esp + 0xc]
or ecx, edx
mov edx, eax
and edx, esi
xor eax, esi
or eax, edx
mov edx, eax
and eax, 0xb3cf5ab3
not edx
and edx, 0x4c30a54c
or eax, edx
mov edx, ecx
and ecx, 0xb5589e25
not edx
mov esi, edx
and esi, 0x4aa761da
or ecx, esi
mov esi, eax
xor eax, 0x4c30a54c
xor esi, 0xb1481a21
or edx, eax
and eax, 0x4aa761da
and esi, 0xb5589e25
not edx
or esi, eax
xor esi, ecx
mov ecx, dword [esp + 0x20]
or edx, esi
mov esi, dword [esp + 4]
not ecx
or ecx, dword [esp + 0x18]
mov eax, esi
not eax
and esi, ecx
not ecx
mov edi, esi
mov esi, ecx
xor esi, eax
and eax, ecx
and esi, ecx
or eax, edi
mov ecx, esi
and ecx, eax
xor eax, esi
or eax, ecx
mov ecx, eax
mov esi, eax
xor ecx, 0x5afd53d6
and esi, 0x81691b9f
and ecx, eax
not eax
and eax, 0x7e96e460
or esi, eax
mov eax, esi
xor esi, 0x246bb7b6
xor eax, 0x81691b9f
and esi, eax
mov eax, edx
xor eax, 0x5afd53d6
and eax, edx
or edx, 0xa502ac29
mov edi, edx
mov ebx, edx
not edi
and ebx, 0x7a6a2da8
and edi, 0x955256
or edi, ebx
mov ebx, eax
and eax, 0x8595d257
not ebx
or edx, ebx
and ebx, 0x7a6a2da8
or eax, ebx
not edx
xor eax, edi
or edx, eax
mov eax, esi
and eax, ecx
xor ecx, esi
mov esi, dword [esp + 0x24]
or ecx, eax
mov eax, edx
not eax
and eax, ecx
not ecx
and ecx, edx
mov edx, dword [esp + 0x28]
or ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
and eax, 0x6f0806dc
xor ecx, 0x6b16978c
and ecx, edx
and edx, 0x90f7f923
or edx, eax
mov eax, dword [esp + 8]
xor eax, 0x9b57e7c3
and eax, esi
mov dword [esp + 8], eax
mov eax, esi
mov esi, dword [esp + 0x18]
and eax, 0xa1447f77
and esi, 0x5ebb8088
or eax, esi
mov esi, edx
xor edx, 0x49080298
or edx, 0xb6254d67
xor eax, 0xa1447f77
xor esi, 0x90f7f923
mov edi, edx
mov ebx, edx
not edi
and ebx, 0xcadbfcdc
and edi, 0x1000200
or edi, ebx
mov ebx, ecx
and ecx, 0x35240323
not ebx
or edx, ebx
and ebx, 0xcadbfcdc
or ecx, ebx
not edx
xor ecx, edi
mov edi, eax
or edx, ecx
mov ecx, dword [esp + 8]
and edi, 0x49dab298
mov ebx, edi
and ebx, ecx
xor ecx, edi
mov edi, edx
or ecx, ebx
not edi
and edi, ecx
not ecx
and ecx, edx
mov edx, esi
and edx, eax
xor eax, esi
or ecx, edi
or eax, edx
mov edx, ecx
and ecx, 0xfa996459
not edx
mov esi, edx
or edx, eax
and esi, 0x5669ba6
not edx
or ecx, esi
mov esi, eax
and eax, 0x5669ba6
not esi
and esi, 0xfa996459
or esi, eax
xor esi, ecx
mov ecx, dword [esp + 4]
or edx, esi
mov esi, edx
and edx, 0xa2683aa2
not esi
and esi, 0x5d97c55d
or esi, edx
mov edx, ecx
mov eax, esi
xor esi, 0xa2683aa2
xor eax, 0x5d97c55d
xor edx, eax
and eax, ecx
and edx, ecx
not ecx
and ecx, esi
or eax, ecx
mov ecx, edx
and edx, 0xfdd9be62
mov esi, eax
not ecx
and eax, 0xfdd9be62
mov edi, ecx
not esi
or ecx, esi
and edi, 0x226419d
and esi, 0x226419d
or edx, edi
or eax, esi
not ecx
xor eax, edx
xor edx, edx
or ecx, eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x38], 0
mov eax, ecx
not eax
mov esi, eax
mov ebx, eax
sete dl
and esi, 0x1f0a2465
and ecx, 0xe0f5db9a
shl edx, 2
or ecx, esi
mov esi, edx
xor ebx, edx
mov edi, ecx
or eax, edx
xor ecx, 0x1f0a2465
not esi
not ebx
xor edi, 0x20519a9a
not eax
and esi, 0x189d3905
and ebx, edx
and edi, 0x345b9abe
lea edx, [esi + 0x244282ba]
xor esi, 0x189d3905
or esi, ecx
and ecx, 0xcba46541
and edx, 0x345b9abe
or edi, ecx
not esi
mov ecx, ebx
xor edx, edi
and ecx, eax
xor eax, ebx
or esi, edx
or eax, ecx
mov edx, esi
mov ecx, esi
mov dword [esp + 8], eax
or esi, 0x77316523
not edx
and ecx, 0xd66548d8
and edx, 0x299ab727
or edx, ecx
mov eax, edx
mov ebx, edx
xor edx, 0xd66548d8
xor eax, 0x299ab727
xor ebx, 0xa1542dfb
and ebx, eax
mov dword [esp + 4], eax
mov edi, ebx
and ebx, 0xfec9194b
not edi
mov eax, edi
or edi, esi
and eax, 0x136e6b4
not edi
or ebx, eax
mov eax, esi
and esi, 0x136e6b4
not eax
and eax, 0x88c81848
or eax, esi
xor eax, ebx
mov ebx, dword [esp + 8]
or edi, eax
mov eax, ebx
not ebx
or eax, 0x88ce9adc
mov ecx, eax
and eax, 0x580eb214
not ecx
and ecx, 0x27314523
or ecx, eax
mov eax, ebx
and ebx, 0x6045f6b6
or eax, 0x77316523
mov esi, eax
and eax, 0x580eb214
not esi
and esi, 0x80c008c8
or esi, eax
mov eax, edi
and edi, 0x72eeb39d
not eax
xor esi, ecx
mov ecx, dword [esp + 4]
and eax, 0x8d114c62
or edi, eax
mov eax, esi
and esi, 0x72eeb39d
not eax
and eax, 0x8d114c62
and ecx, 0x6045f6b6
or esi, eax
mov eax, edx
and eax, 0x9fba0949
xor esi, edi
or ecx, eax
mov eax, dword [esp + 8]
or edx, eax
and eax, 0x9fba0949
or ebx, eax
not edx
xor ebx, ecx
mov ecx, dword [esp + 0x14]
or edx, ebx
mov eax, edx
and edx, 0x78357b76
not eax
and eax, 0x87ca8489
or edx, eax
mov eax, esi
xor edx, 0x78357b76
and eax, edx
xor edx, esi
or edx, eax
push 0
push edx
call fcn.0040b950
lea ecx, [esp + 0x38]
call fcn.0040a8e0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.0041e74b
mov eax, dword [esp + 0x30]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret