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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
mov eax, dword [0x42d5e0]
mov ecx, dword [esp + 0x7c]
xor esi, esi
xor eax, esp
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 0x3c]
mov eax, dword [ecx + eax + 0x78]
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
add eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov eax, dword [eax + 0x18]
mov dword [esp + 0x20], eax
mov eax, 0x141affd3
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
mov eax, 0xd82e4a10
nop dword [eax + eax]
cmp eax, 0x141affd2
jg 0x403dc0
cmp eax, 0xddb977b6
jg 0x403990
cmp eax, 0xd3d2d2ef
jg 0x403c1a
cmp eax, 0xaca056c4
je 0x403f37
cmp eax, 0xb05c4ab7
je 0x403f54
cmp eax, 0xa3483b47
jne 0x403950
jmp 0x4047d1
cmp eax, 0x3693553
jg 0x403e7b
cmp eax, 0xddb977b7
je 0x403fa0
cmp eax, 0xe823fdd7
jne 0x403950
mov eax, dword [0x42df40]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0x6db603ea
and eax, edx
or edx, 0x9249fc15
mov edi, eax
mov ecx, edx
mov ebx, edx
and eax, 0xb70577ef
not ecx
not edi
and ebx, 0x48fa8810
or edx, edi
and ecx, 0x250403ea
and edi, 0x48fa8810
or ecx, ebx
or eax, edi
not edx
xor eax, ecx
or edx, eax
mov eax, edx
and edx, 0xd67ae4b2
not eax
and eax, 0x29851b4d
or edx, eax
mov edi, edx
mov eax, edx
xor edx, 0x7e58414b
xor eax, 0x86
xor edi, 0xbbcce758
and edx, edi
and eax, 0xb840e38e
and edi, 0x47bf1c71
or edi, eax
mov ecx, edi
mov ebx, edi
xor edi, 0x1800e30e
xor ecx, 0x47bf1c71
xor ebx, 0x7dd4459d
and edi, 0x5c38ff2f
and ebx, ecx
mov eax, ebx
and ebx, 0x63e20988
not eax
mov ebp, eax
and ebp, 0x9c1df677
or ebx, ebp
mov ebp, edx
and edx, 0x63e20988
not ebp
or eax, ebp
and ebp, 0x9c1df677
or edx, ebp
not eax
xor edx, ebx
mov ebx, ecx
and ecx, 1
and ebx, 0xa3c700d0
or eax, edx
or ebx, edi
mov edx, eax
and eax, 0x831369f3
xor ebx, 0x5c38ff2e
not edx
or ecx, ebx
and edx, 0x7cec960c
mov edi, ecx
or eax, edx
and ecx, 0x4a9f2b6d
not edi
mov edx, eax
xor eax, 0xb978301e
and edi, 0xb560d492
xor edx, 0x42844b21
or ecx, edi
mov edi, eax
and edx, 0x6bf44b23
and edi, 0x940bb4dc
or edx, edi
mov edi, ecx
xor ecx, 0xb560d492
xor edi, 0x4a940b21
or eax, ecx
and ecx, 0x940bb4dc
and edi, 0x6bf44b23
not eax
or edi, ecx
xor edi, edx
or eax, edi
mov ecx, eax
not ecx
mov edx, ecx
and ecx, eax
and eax, 0x50c1951
and edx, 0xfaf3e6ae
or eax, edx
mov edx, eax
xor eax, 0xfaf3e6ae
xor edx, 0x5080841
mov edi, eax
and edi, 0xa0055138
and edx, 0x5ffaaec7
or edx, edi
mov edi, ecx
and ecx, 0x5ffaaec7
not edi
or eax, edi
and edi, 0xa0055138
or ecx, edi
not eax
mov edi, dword [esp + 0x18]
xor ecx, edx
mov edx, dword [0x42df44]
or eax, ecx
mov ecx, eax
and eax, 0x7edeb7b2
not ecx
mov dword [esp + 0x44], edi
and ecx, 0x8121484d
or ecx, eax
mov eax, ecx
xor ecx, 0x80014008
xor eax, 0x5cce95b2
and ecx, 0xa2116208
and eax, 0x5dee9df7
or eax, ecx
xor eax, 0x5dee9df7
sete ah
setne ch
cmp edx, 9
setg al
cmp edx, 0xa
mov dl, ch
setl dh
xor dl, ah
and dl, ch
and ch, dh
mov cl, dl
mov ebx, edx
xor cl, 1
or cl, dl
xor cl, 1
and bl, cl
xor cl, dl
or cl, bl
xor cl, dh
mov dh, al
xor dh, ah
mov dl, cl
and dh, al
and al, ah
xor dl, 1
or al, ch
mov ah, dh
and dl, cl
and ah, al
xor al, dh
mov dh, cl
or al, ah
and dh, dl
xor dl, cl
mov ah, al
mov ch, al
or dl, dh
mov dh, al
xor ah, 1
and ch, ah
xor dh, ch
xor ch, 1
or ch, ah
mov ah, dl
xor ch, 1
xor ah, 1
or ch, dh
and ah, ch
xor ch, 1
and ch, dl
mov edx, ecx
and dl, al
xor al, cl
or ch, ah
or al, dl
mov edx, 0x7a48f23d
mov cl, al
xor cl, ch
test al, 1
mov eax, 0xd3d2d2f0
cmovne eax, edx
test ch, 1
cmove eax, edx
test cl, 1
mov edx, 0xd3d2d2f0
jmp 0x40431b
cmp eax, 0xd3d2d2f0
je 0x40413f
cmp eax, 0xd82e4a10
jne 0x403950
mov ecx, dword [0x42df40]
mov eax, dword [0x42df44]
lea edx, [ecx - 1]
imul edx, ecx
mov edi, edx
mov ecx, edx
xor edi, 0x37d7b6a2
and ecx, 0x27849020
and edi, edx
not edx
and edx, 0x10532682
mov ebx, edi
and edi, 0x69d1648b
or ecx, edx
not ebx
mov edx, ecx
xor ecx, 0xd87b6fdf
mov ebp, ecx
xor edx, 0x21800000
or ecx, ebx
and ebx, 0x962e9b74
and ebp, 0x962e9b74
and edx, 0x21d12482
or edi, ebx
not ecx
or edx, ebp
xor edi, edx
or ecx, edi
mov edx, ecx
and ecx, 0x1c78400b
not edx
and edx, 0xe387bff4
or ecx, edx
mov edi, ecx
mov edx, ecx
xor ecx, 0x4400102
xor edi, 0x2baff6a9
xor edx, 0x2baff6a8
and ecx, 0x6ced523
and edx, edi
and edi, 0xf9312adc
mov ebx, edx
or edi, ecx
and edx, 0xdf9f4f6d
mov ecx, edi
not ebx
xor edi, 0x6ced522
mov ebp, ebx
xor ecx, 0xd9110a4d
or ebx, edi
and edi, 0x2060b092
and ecx, 0xdf9f4f6d
and ebp, 0x2060b092
not ebx
or ecx, edi
or edx, ebp
mov edi, 0x62d62a2a
xor ecx, edx
or ebx, ecx
mov ecx, ebx
xor ecx, 0xd9450fc6
and ecx, ebx
not ebx
and ebx, 0xd9450fc6
mov edx, ebx
and edx, ecx
xor ecx, ebx
mov ebx, 0xddb977b7
or ecx, edx
mov edx, ecx
and ecx, 0xd9450fc6
not edx
and edx, 0x26baf039
or ecx, edx
sete dl
setne ch
cmp eax, 0xa
setl cl
cmp eax, 9
setg ah
and cl, dl
and ch, ah
mov al, ah
or cl, ch
xor al, dl
xor cl, 1
not al
or cl, ah
or ah, dl
and al, dl
mov ch, cl
mov dl, ah
mov dh, cl
xor ch, 1
xor dl, al
xor al, 1
and dh, ch
or al, ah
mov ah, ch
xor dl, 1
xor dh, 1
xor al, 1
xor ah, dh
or dh, ch
or al, dl
xor dh, 1
xor al, 1
or dh, ah
mov ah, cl
xor dh, al
and ah, al
xor al, cl
or al, ah
mov ecx, eax
xor cl, dh
test cl, 1
cmovne ebx, edi
test al, 1
mov eax, 0xddb977b7
cmovne eax, ebx
test dh, 1
cmove eax, ebx
cmp eax, 0x141affd2
jle 0x40395b
nop dword [eax]
cmp eax, 0x564e59db
jg 0x403e30
cmp eax, 0x2ceaf10b
jg 0x403eae
cmp eax, 0x141affd3
je 0x40423d
cmp eax, 0x1c5b3ce4
jne 0x403950
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x3c], eax
call fcn.00406c00
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x10], 0
mov edx, dword [esp + 0x40]
mov eax, 0xe823fdd7
mov ecx, 0x58573f45
cmove eax, ecx
mov dword [esp + 0x18], edx
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
cmp eax, 0x62d62a29
jg 0x403ef4
cmp eax, 0x564e59dc
je 0x40432e
cmp eax, 0x58573f45
jne 0x403950
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 4], eax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, 0x141affd3
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
cmp eax, 0x3693554
je 0x404601
cmp eax, 0x8fdec59
jne 0x403950
mov ecx, dword [esp + 0x38]
mov eax, 0xe823fdd7
mov dword [esp + 0x18], ecx
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
cmp eax, 0x2ceaf10c
je 0x404767
cmp eax, 0x3725cd07
jne 0x403950
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0
add eax, 4
mov dword [esp + 0x14], eax
mov eax, 0x1c5b3ce4
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
cmp eax, 0x62d62a2a
je 0x403946
cmp eax, 0x7a48f23d
jne 0x403950
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, 0xd3d2d2f0
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov eax, 0x3693554
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax + 0x24]
mov edx, ecx
add eax, ecx
mov ecx, dword [esp + 0x34]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], 2
mov ecx, dword [ecx + 0x1c]
add ecx, edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xc], eax
mov eax, 0x1c5b3ce4
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
mov ecx, dword [0x42df40]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov edx, eax
and eax, 0x9b270c38
not ecx
and edx, 0x60401004
and ecx, 0x498e3c3
or edx, ecx
xor edx, 0x60401004
or eax, edx
mov ecx, eax
and eax, 0x64d8f3c7
not ecx
and ecx, 0x9b270c38
or eax, ecx
mov edi, eax
mov edx, eax
xor edi, 0x601039a6
not edx
mov ebx, edi
and edi, eax
xor eax, 0xfffffffe
and ebx, edx
and edx, 1
mov ecx, ebx
and ebx, 0x5dd549d6
or eax, edx
not ecx
mov edx, eax
and eax, 0xa21e5c2
mov ebp, ecx
not edx
and ebp, 0xa22ab629
and edx, 0xf5de1a3d
or ebx, ebp
mov ebp, edi
and edi, 0x5dd549d6
or eax, edx
not ebp
or ecx, ebp
and ebp, 0xa22ab629
or edi, ebp
not ecx
xor edi, ebx
or ecx, edi
mov edi, ecx
and ecx, 0x601039a7
not edi
and edi, 0x9fefc658
or ecx, edi
mov edx, ecx
and ecx, 0x7668f838
not edx
mov edi, edx
and edi, 0x899707c7
or ecx, edi
mov edi, eax
xor eax, 0xf5de1a3d
xor edi, 0x220e000
or edx, eax
and eax, 0x899707c7
and edi, 0x7668f838
not edx
or edi, eax
xor edi, ecx
or edx, edi
mov edi, 0xaca056c4
mov eax, edx
mov ecx, edx
and edx, 0x11d07b9a
not eax
and ecx, 0x8a248020
and eax, 0x640b0445
or ecx, eax
xor ecx, 0x8a248020
or edx, ecx
mov eax, edx
and edx, 0xee2f8465
not eax
and eax, 0x11d07b9a
or edx, eax
mov eax, edx
and edx, 0x8ede223c
not eax
mov ecx, eax
and ecx, 0x7121ddc3
or edx, ecx
mov ecx, dword [0x42df44]
xor edx, 0x7121ddc3
xor eax, edx
test eax, edx
setne dl
sete ah
cmp ecx, 0xa
setl al
cmp ecx, 9
setg cl
and dl, al
mov ch, cl
mov dh, cl
and cl, ah
xor ch, ah
or cl, dl
mov dl, al
xor al, ah
or dh, ah
not ch
and dl, ah
xor dh, 1
or al, dl
and ch, ah
mov dl, cl
mov bl, ch
xor al, 1
and bl, dh
xor dh, ch
and dl, al
xor al, cl
or dh, bl
or al, dl
xor al, dh
and dh, al
mov ecx, eax
xor cl, dh
test al, 1
mov eax, 0x3693554
cmovne eax, edi
test dh, dh
mov edx, 0x3693554
cmove eax, edi
test cl, 1
jmp 0x40431b
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
mov eax, dword [0x42df40]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov edx, ecx
mov ebx, ecx
not eax
and edx, 0x1016a440
xor ebx, 0x9016bcd0
mov edi, eax
and ebx, ecx
and ecx, 0x1e70d49e
and eax, 0xe18f2b61
and edi, 0x80001890
or eax, ecx
or edx, edi
mov edi, edx
xor edx, 0xefe95bbf
not edi
mov ebp, edx
and ebp, 0xa332ddf5
and edi, 0x10042000
or edi, ebp
mov ebp, ebx
and ebx, 0x5ccd220a
not ebp
or edx, ebp
and ebp, 0xa332ddf5
or ebx, ebp
not edx
xor ebx, edi
or edx, ebx
mov edi, edx
and edx, 0x9016bcd1
not edi
and edi, 0x6fe9432e
or edx, edi
mov edi, edx
and edx, 0xe18f2b61
not edi
mov ebx, edi
and ebx, 0x1e70d49e
or edx, ebx
xor eax, edx
xor edi, eax
test edi, eax
mov eax, dword [0x42df44]
mov edi, 0x7a48f23d
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
setg al
and ch, dl
mov dh, al
xor dh, dl
mov dl, al
xor dl, cl
and dl, al
and al, cl
or al, ch
mov ecx, edx
and cl, al
xor al, dl
or al, cl
xor al, dh
and dh, al
mov ecx, eax
xor cl, dh
test al, al
mov eax, 0xa3483b47
cmovne eax, edi
test dh, dh
not cl
mov edx, 0xa3483b47
cmove eax, edi
test cl, 1
jmp 0x404754
mov ecx, dword [0x42df40]
mov dword [esp + 0x38], esi
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov edi, eax
not ecx
xor edi, 0xfffffffe
mov edx, ecx
and edi, eax
and ecx, 0x416ccfcf
and eax, 0xbe933030
and edx, 0xfffffffe
or eax, ecx
mov ebx, edx
mov ecx, eax
xor eax, 0x416ccfcf
and ebx, edi
xor edi, edx
xor ecx, 0xbe933030
mov edx, dword [0x42df44]
or edi, ebx
and eax, edi
not edi
and ecx, edi
or eax, ecx
not eax
or eax, edi
mov edi, dword [esp + 4]
cmp eax, 0xffffffff
sete ah
setne ch
cmp edx, 0xa
setl cl
cmp edx, 9
mov dl, ch
setg al
or ch, cl
and cl, ah
mov dword [esp + 0x34], edi
and dl, al
or cl, dl
xor cl, 1
or cl, al
or al, ah
mov edx, eax
or al, ch
xor dl, ch
xor al, 1
or al, dl
mov edx, eax
xor dl, 1
mov ch, dl
mov ah, dl
and ch, al
and ah, ch
xor ch, dl
or ch, ah
mov dl, ch
xor ch, 1
and ch, cl
xor cl, 1
and dl, cl
or ch, dl
mov edx, ecx
xor dl, al
or al, cl
xor al, 1
or al, dl
mov edx, 0x62d62a2a
mov cl, al
xor cl, ch
test al, 1
mov eax, 0xd82e4a10
cmovne eax, edx
test ch, 1
cmove eax, edx
mov edx, dword [esp + 8]
test cl, 1
mov dword [esp + 0x30], edx
mov edx, 0xd82e4a10
cmove eax, edx
cmp eax, 0x141affd2
jg 0x403dc0
jmp 0x40395b
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x4c]
mov ebp, dword [eax]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
add ebp, dword [esp + 0x7c]
call fcn.00407860
mov edx, dword [0x42df48]
mov ecx, dword [0x42df4c]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea eax, [edx - 1]
imul eax, edx
mov edx, eax
mov ebx, eax
not edx
and ebx, 0x70264002
mov edi, edx
and edx, 0xa0988b02
and edi, 0x80a040
or ebx, edi
mov edi, eax
and eax, 0x5f6774fd
xor ebx, 0x70264002
and edi, 0x8f591fbd
or eax, edx
or edi, ebx
mov edx, eax
xor eax, 0xa0988b02
mov ebx, edi
and edi, 0x70a6e043
xor edx, 0x5f6774fd
not ebx
and ebx, 0x8f591fbc
or edi, ebx
and eax, edi
not edi
and edx, edi
or eax, edx
xor edi, eax
test edi, eax
mov edi, 0xf34e863a
setne ah
sete dh
sete byte [esp + 0x4a]
cmp ecx, 9
setg al
cmp ecx, 0xa
mov bl, ah
setl ch
setl byte [esp + 0x4b]
xor bl, al
mov dl, ch
xor bl, 1
xor dl, al
or al, ah
mov ah, bl
and dl, ch
xor ch, dh
xor al, 1
xor dl, dh
or al, ch
mov ecx, edx
xor ah, al
or al, bl
xor cl, 1
xor al, 1
and cl, dl
or al, ah
mov ah, cl
xor cl, dl
xor al, 1
and ah, dl
or cl, ah
mov ah, dl
xor cl, al
xor ah, al
or al, dl
xor al, 1
or al, ah
mov edx, eax
xor dl, cl
test al, 1
mov eax, 0xf37dd412
cmovne edi, eax
test cl, 1
cmove edi, eax
test dl, 1
mov eax, 0xf34e863a
cmove edi, eax
mov eax, 0xa9ce8ab6
nop dword [eax]
cmp eax, 0xf34e8639
jg 0x4045c0
cmp eax, 0xa2a24f9a
je 0x4045ed
cmp eax, 0xa9ce8ab6
jne 0x404450
mov dh, byte [esp + 0x4a]
mov ah, byte [esp + 0x4b]
mov bh, dh
mov cl, dh
mov dl, ah
xor bh, 1
xor dl, 1
mov al, bh
mov ch, dl
or bh, dh
and al, dh
mov bl, bh
xor al, 1
xor bl, 1
xor cl, al
or al, dh
mov byte [esp + 1], bl
xor al, 1
or al, cl
mov cl, dl
and cl, ah
mov dh, al
mov byte [esp + 3], al
and ch, cl
xor cl, dl
or dl, ah
mov ah, bl
or cl, ch
mov ch, al
and ah, bh
xor ch, 1
and al, ch
mov byte [esp + 2], ch
mov ch, al
mov bl, al
xor al, 1
and ch, dh
xor bl, dh
or bl, ch
mov ch, ah
xor ah, byte [esp + 1]
xor ch, 1
mov dh, bl
or ch, bh
xor dh, 1
xor ch, 1
or ch, ah
mov ah, cl
and dh, ch
xor ch, 1
xor ah, 1
and ch, bl
mov bl, byte [esp + 2]
or ch, dh
mov dh, bl
and dh, bh
xor bh, bl
xor bl, ah
or bh, dh
mov dh, ch
xor bh, 1
and dh, bh
xor bh, ch
mov ch, dl
xor ch, 1
or bh, dh
mov dh, dl
and dh, cl
and ch, ah
or ch, dh
mov dh, ah
and dh, dl
xor dl, ah
and ah, cl
or dl, dh
mov dh, ch
xor ah, 1
xor dl, 1
and dh, dl
xor dl, ch
or dl, dh
mov dh, byte [esp + 3]
xor dl, bh
mov ch, dh
xor ch, al
or al, dh
xor al, 1
or al, ch
mov ch, cl
xor ch, ah
or ah, cl
or cl, dh
xor ah, 1
xor cl, 1
or ah, ch
or cl, bl
xor ah, al
xor ah, 1
mov al, ah
xor al, cl
or cl, ah
xor cl, 1
or cl, al
mov eax, ecx
mov ch, cl
xor al, 1
and ch, al
mov ah, al
xor ch, 1
xor ah, ch
or ch, al
mov al, dl
xor ch, 1
xor al, 1
or ch, ah
and dl, ch
xor ch, 1
and ch, al
or ch, dl
mov edx, eax
and dl, cl
xor cl, al
or cl, dl
mov edx, 0xa2a24f9a
mov eax, ecx
xor al, ch
test al, 1
mov eax, 0xf37dd412
cmovne edx, eax
test cl, 1
mov eax, 0xa2a24f9a
cmovne eax, edx
test ch, 1
cmove eax, edx
cmp eax, 0xf34e8639
jle 0x40445b
nop word cs:[eax + eax]
cmp eax, 0xf34e863a
je 0x404789
cmp eax, 0xf37dd412
jne 0x404450
mov byte [esp + 0x4c], 0
mov eax, 0xa2a24f9a
cmp eax, 0xf34e8639
jle 0x40445b
jmp 0x4045c0
mov byte [esp + 0x4c], 0
mov eax, edi
cmp eax, 0xf34e8639
jle 0x40445b
jmp 0x4045c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov eax, dword [0x42df40]
setb byte [esp + 0x27]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, ecx
mov edi, ecx
not edx
and edi, 0x60a88230
mov eax, edx
and edx, 0xc1596ebe
and eax, 0x90004188
or edi, eax
mov eax, ecx
and ecx, 0x3ea69141
xor edi, 0x60a88230
and eax, 0xf573c47
or ecx, edx
or eax, edi
mov edi, eax
and eax, 0xf0a8c3b9
not edi
and edi, 0xf573c46
or eax, edi
mov edi, eax
and eax, 0x836e40a3
not edi
and edi, 0x7c91bf5c
or eax, edi
mov edi, eax
xor eax, 0x7c91bf5c
xor edi, 0x36200a0
mov edx, eax
and edx, 0xd88c7d4f
and edi, 0x277382b0
or edi, edx
mov edx, ecx
xor ecx, 0xc1596ebe
xor edx, 0x26228000
or eax, ecx
and ecx, 0xd88c7d4f
and edx, 0x277382b0
not eax
or edx, ecx
xor edx, edi
mov edi, 0xaca056c4
or eax, edx
mov ecx, eax
and eax, 0x698a023e
not ecx
and ecx, 0x9675fdc1
or eax, ecx
mov ecx, dword [0x42df44]
xor eax, 0x698a023e
sete al
setne dl
cmp ecx, 9
setg ah
cmp ecx, 0xa
setl cl
and cl, dl
mov dl, ah
and dl, al
xor al, ah
and ah, al
or dl, cl
xor al, 1
mov cl, ah
and cl, al
xor al, ah
or al, cl
mov ecx, edx
xor cl, 1
mov ah, cl
mov ch, cl
and ah, dl
xor ch, ah
xor ah, 1
or ah, dl
mov edx, eax
xor dl, 1
xor ah, 1
or ah, ch
and dl, al
mov ch, al
and ch, dl
xor dl, al
or dl, ch
mov ch, ah
xor ch, 1
and ch, dl
xor dl, 1
and dl, ah
mov ah, cl
xor cl, al
and ah, al
or dl, ch
or cl, ah
mov eax, 0x2ceaf10c
mov ch, cl
xor ch, dl
test cl, 1
cmovne eax, edi
test dl, 1
not ch
mov edx, 0x2ceaf10c
cmove eax, edi
test ch, 1
cmovne eax, edx
cmp eax, 0x141affd2
jg 0x403dc0
jmp 0x40395b
cmp byte [esp + 0x27], 0
mov eax, 0x8fdec59
mov ecx, 0x564e59dc
cmovne eax, ecx
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
push ebp
call fcn.00415910
add esp, 4
lea edi, [esp + 0x4c]
mov ecx, edi
push eax
push ebp
call fcn.004080f0
push 0x235
push edi
call fcn.004015b0
add esp, 8
cmp eax, dword [esp + 0x80]
mov eax, 0x3725cd07
mov ecx, 0xb05c4ab7
cmove eax, ecx
cmp eax, 0x141affd2
jle 0x40395b
jmp 0x403dc0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.0040f7b3
mov eax, esi
add esp, 0x68
pop esi
pop edi
pop ebx
pop ebp
ret