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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov eax, dword [0x44e82c]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov esi, 0x7f3d5599
xor eax, ebp
test ecx, ecx
mov dword [esp + 0xc8], eax
mov eax, 0x713ce6f
cmove esi, eax
lea eax, [edx + ecx]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov eax, 0x839c1e88
lea esi, [esp + 0x90]
mov dword [esp + 8], ecx
nop dword [eax]
cmp eax, 0x16dbb017
jg 0x40ff80
cmp eax, 0xe22871be
jg 0x40fef0
cmp eax, 0xbd1e0cf0
jle 0x40ff35
cmp eax, 0xd2169f6a
jg 0x410360
cmp eax, 0xc0bc4ccb
jg 0x41096d
cmp eax, 0xbd1e0cf1
je 0x410cb9
cmp eax, 0xbeb70a7d
jne 0x40fe90
cmp byte [esp + 0x5f], 0
mov eax, 0x60580d5
mov ecx, 0x12cbd3e4
jmp 0x4116c9
cmp eax, 0x713ce6e
jle 0x4101f0
cmp eax, 0x12cbd3e3
jg 0x410509
cmp eax, 0xff10dc1
jg 0x4109a3
cmp eax, 0x713ce6f
je 0x410d18
cmp eax, 0x8f7dba8
jne 0x40fe90
mov ecx, dword [esp + 0x38]
mov eax, 0x65f5f313
jmp 0x4116f8
cmp eax, 0x99f4f7b6
jle 0x410685
cmp eax, 0xb5eb88c7
jg 0x410a40
cmp eax, 0x99f4f7b7
je 0x411fc5
cmp eax, 0xaa86705f
jne 0x40fe90
cmp dword [esp + 0x58], 0
mov eax, 0x60580d5
mov ecx, 0x431610f6
cmovg eax, ecx
cmp eax, 0x16dbb017
jle 0x40fe9b
nop
cmp eax, 0x54ad96d7
jg 0x410040
cmp eax, 0x345c7389
jle 0x410280
cmp eax, 0x431610f5
jg 0x4103e5
cmp eax, 0x3cc64e30
jg 0x410a74
cmp eax, 0x345c738a
je 0x410d95
cmp eax, 0x3add7536
jne 0x40fe90
mov eax, dword [esp + 0x6c]
mov edi, 0x16dbb018
mov ebx, 0x2b38b5d3
cmp eax, 0x100
mov eax, dword [0x44f6a0]
sete byte [esp + 0x72]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xe615999c
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0x19ea6663
or edx, ecx
mov ecx, dword [0x44f6a4]
xor edx, 0x19ea6662
or eax, edx
cmp eax, 0xffffffff
sete al
setne dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
xor ah, al
or cl, dl
mov edx, ecx
xor dl, ah
test ah, ah
mov eax, 0x2b38b5d3
cmovne eax, edi
test cl, cl
cmovne eax, ebx
jmp 0x411378
cmp eax, 0x638a6d30
jle 0x4102c5
cmp eax, 0x6ed240ce
jg 0x41046f
cmp eax, 0x6cd964fb
jg 0x410aa1
cmp eax, 0x638a6d31
je 0x410db8
cmp eax, 0x65f5f313
jne 0x40fe90
mov eax, dword [0x44f560]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xdd355aa4
not eax
mov edx, eax
and edx, 0x22caa55b
or ecx, edx
mov edx, dword [esp + 4]
xor ecx, 0xdd355aa5
xor eax, ecx
test eax, ecx
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x74], edx
mov edi, dword [eax + 0x30]
mov eax, dword [0x44f564]
sete byte [esp + 0x88]
cmp eax, 0xa
mov eax, 0x882884e7
setl byte [esp + 0x8c]
nop dword [eax + eax]
cmp eax, 0xf6564ec3
jg 0x410140
cmp eax, 0x882884e7
je 0x4100ea
cmp eax, 0xe24c3dae
jne 0x4100d0
jmp 0x410e67
movzx eax, byte [esp + 0x88]
movzx ecx, byte [esp + 0x8c]
mov ebx, 0x2458cea1
mov edx, eax
mov ah, cl
xor dl, 1
xor ah, 1
and ah, al
and dl, cl
or dl, ah
mov ah, al
or al, cl
xor ah, cl
xor al, 1
or al, ah
mov ecx, eax
xor cl, dl
test cl, 1
mov ecx, 0xf6564ec4
cmovne ecx, ebx
test al, 1
mov eax, 0xf6564ec4
cmovne eax, ecx
test dl, 1
cmove eax, ecx
cmp eax, 0xf6564ec3
jle 0x4100d7
nop
cmp eax, 0xf6564ec4
je 0x41016f
cmp eax, 0x2458cea1
jne 0x4100d0
mov ecx, dword [edi + 4]
mov dword [esp + 0x94], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xf6564ec4
cmp eax, 0xf6564ec3
jle 0x4100d7
jmp 0x410140
mov ecx, dword [edi + 4]
mov dword [esp + 0x94], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x44f560]
mov ebx, 0xe24c3dae
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x12f0ad26
not eax
mov edx, eax
and edx, 0xed0f52d9
or ecx, edx
xor ecx, 0xed0f52d8
or ecx, eax
cmp ecx, 0xffffffff
sete al
cmp dword [0x44f564], 0xa
setl cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
or cl, dl
mov eax, ecx
xor al, dl
mov eax, 0x2458cea1
cmovne ebx, eax
test cl, cl
mov eax, 0xe24c3dae
cmovne eax, ebx
test dl, dl
cmove eax, ebx
cmp eax, 0xf6564ec3
jle 0x4100d7
jmp 0x410140
cmp eax, 0xf665aedd
jle 0x4107fb
cmp eax, 0xed5709
jg 0x410b1d
cmp eax, 0xf665aede
je 0x411060
cmp eax, 0xf8938939
jne 0x40fe90
mov eax, dword [0x44f6a0]
mov edi, 0x8f7dba8
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xb906ce9a
not eax
mov edx, eax
and edx, 0x46f93165
or ecx, edx
xor ecx, 0x46f93164
or ecx, eax
mov eax, dword [0x44f6a4]
cmp ecx, 0xffffffff
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
mov eax, 0xe22871bf
setg dh
xor ch, cl
or dh, dl
mov cl, dh
xor cl, ch
test ch, ch
cmovne eax, edi
test dh, dh
mov edx, 0xe22871bf
jmp 0x4114cb
cmp eax, 0x280d019b
jle 0x410879
cmp eax, 0x2d164f14
jg 0x410b48
cmp eax, 0x280d019c
je 0x411091
cmp eax, 0x2b38b5d3
jne 0x40fe90
mov eax, dword [esp + 0x6c]
mov eax, 0x3add7536
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0x5b7503d5
jle 0x410947
cmp eax, 0x5ed8b1d4
jg 0x410b85
cmp eax, 0x5b7503d6
je 0x411100
cmp eax, 0x5ca5f6c6
jne 0x40fe90
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, dword [0x44f6a0]
mov ecx, dword [0x44f6a4]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and edx, 1
not eax
mov edi, eax
and edi, 0xfffffffe
or edx, edi
mov edi, 0xb818b97b
xor eax, edx
test eax, edx
setne al
sete dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
mov ch, ah
or ah, dl
and dl, cl
xor cl, al
xor ah, 1
and ch, al
or ah, cl
or ch, dl
mov edx, 0x53f73643
mov al, ah
xor al, ch
cmovne edx, edi
test ah, ah
mov eax, 0x53f73643
cmovne eax, edx
jmp 0x4118d3
cmp eax, 0xd9046596
jg 0x410c47
cmp eax, 0xd2169f6b
je 0x411119
cmp eax, 0xd5b7d161
jne 0x40fe90
mov eax, dword [0x44f6a0]
mov edi, 0x638a6d31
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xf0af5f00
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0xf50a0ff
or edx, ecx
xor edx, 0xf50a0fe
or eax, edx
cmp eax, 0xffffffff
sete al
cmp dword [0x44f6a4], 0xa
mov edx, eax
setl cl
xor dl, cl
or cl, al
mov eax, 0xd9046597
xor cl, 1
or cl, dl
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, edi
test dl, dl
mov edx, 0xd9046597
jmp 0x411165
cmp eax, 0x4f4de38f
jg 0x410c73
cmp eax, 0x431610f6
je 0x41116d
cmp eax, 0x441d37ef
jne 0x40fe90
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
mov eax, 0x280d019c
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0x73e8eb68
jg 0x410c9e
cmp eax, 0x6ed240cf
je 0x4111cf
cmp eax, 0x71a19bca
jne 0x40fe90
mov eax, dword [0x44f6a0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xfdfdc3f2
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0x2023c0d
or edx, ecx
xor edx, 0x2023c0c
or eax, edx
mov ecx, eax
and eax, 0xb9a4306f
not ecx
and ecx, 0x465bcf90
or eax, ecx
xor eax, 0xb9a4306f
setne al
cmp dword [0x44f6a4], 9
setg cl
mov edx, ecx
xor cl, al
and dl, al
mov eax, 0x55bb8b56
or dl, cl
mov ch, dl
xor ch, cl
test dl, dl
mov edx, 0xb5eb88c8
cmovne eax, edx
test cl, cl
cmove eax, edx
test ch, ch
mov edx, 0x55bb8b56
jmp 0x4118d5
cmp eax, 0x14b1b4ee
je 0x4120d5
cmp eax, 0x12cbd3e4
je 0x411276
cmp eax, 0x14928236
jne 0x40fe90
movzx eax, byte [esp + 0x73]
mov edi, 0xe9aa47c6
mov dword [esp + 0x30], eax
mov eax, dword [0x44f568]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x96db80e6
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0x69247f19
or edx, ecx
mov ecx, dword [0x44f56c]
xor edx, 0x69247f18
or eax, edx
mov edx, eax
and eax, 0x3b7af97
not edx
and edx, 0xfc485068
or eax, edx
xor eax, 0x3b7af97
setne al
sete byte [esp + 0x88]
cmp ecx, 9
setg dl
cmp ecx, 0xa
mov ecx, edx
setl byte [esp + 0x8c]
xor dl, al
and cl, al
or cl, dl
mov eax, ecx
xor al, dl
mov eax, 0x92e2a918
cmovne edi, eax
test cl, cl
mov eax, 0xe9aa47c6
cmovne eax, edi
test dl, dl
mov edx, dword [ebp + 0x18]
cmove eax, edi
mov edi, dword [edx + 0x14]
mov edx, 0x45db3d0d
nop dword [eax + eax]
cmp edx, 0xe9aa47c5
jg 0x410600
cmp edx, 0x92e2a918
je 0x41066f
cmp edx, 0xb441f633
jne 0x4105d0
mov dword [esp + 0x90], edi
mov edx, eax
cmp edx, 0xe9aa47c5
jle 0x4105d8
nop dword [eax]
cmp edx, 0xe9aa47c6
je 0x4112d1
cmp edx, 0x45db3d0d
jne 0x4105d0
movzx edx, byte [esp + 0x88]
mov dh, byte [esp + 0x8c]
mov esi, 0xb441f633
mov ebx, edx
mov bh, dh
xor bl, 1
xor bh, 1
and dh, bl
or bl, bh
and bh, dl
or bh, dh
mov edx, 0x92e2a918
mov cl, bh
xor cl, bl
test bh, 1
cmovne edx, esi
test bl, 1
mov ebx, 0x92e2a918
cmovne edx, ebx
test cl, 1
cmove edx, esi
lea esi, [esp + 0x90]
cmp edx, 0xe9aa47c5
jle 0x4105d8
jmp 0x410600
mov edx, 0xb441f633
cmp edx, 0xe9aa47c5
jle 0x4105d8
jmp 0x410600
cmp eax, 0x839c1e88
je 0x41137f
cmp eax, 0x840f0fdb
je 0x41139b
cmp eax, 0x84f1d68c
jne 0x40fe90
mov eax, dword [esp + 0x1c]
mov esi, 0x92e2a918
mov dword [esp + 0x80], eax
mov eax, dword [0x44f568]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
mov edx, dword [0x44f56c]
xor eax, ecx
test eax, ecx
sete al
setne cl
sete byte [esp + 0x88]
cmp edx, 9
setg ch
cmp edx, 0xa
setl dl
setl byte [esp + 0x8c]
or ch, cl
xor dl, al
mov cl, ch
mov eax, 0x92e2a918
xor cl, dl
test dl, dl
mov edx, 0xe9aa47c6
cmovne eax, edx
test ch, ch
cmovne eax, esi
test cl, cl
lea esi, [esp + 0x90]
cmove eax, edx
mov edx, dword [ebp + 0x18]
mov edi, dword [edx + 0x14]
mov edx, 0x45db3d0d
nop
cmp edx, 0xe9aa47c5
jg 0x410760
cmp edx, 0x92e2a918
je 0x4107e5
cmp edx, 0xb441f633
jne 0x410730
mov dword [esp + 0x90], edi
mov edx, eax
cmp edx, 0xe9aa47c5
jle 0x410738
nop dword [eax]
cmp edx, 0xe9aa47c6
je 0x4113c0
cmp edx, 0x45db3d0d
jne 0x410730
movzx edx, byte [esp + 0x88]
movzx ecx, byte [esp + 0x8c]
mov esi, 0x92e2a918
mov ebx, ecx
mov dh, cl
mov ch, dl
xor bl, 1
xor ch, cl
and dh, bl
mov bh, dh
xor dh, cl
xor bh, 1
or bh, bl
xor bh, 1
or bh, dh
xor bh, dl
or dl, cl
xor dl, 1
or dl, ch
mov ecx, edx
xor cl, bh
test cl, 1
mov ecx, 0xb441f633
cmovne ecx, esi
test dl, 1
mov edx, 0xb441f633
lea esi, [esp + 0x90]
cmovne edx, ecx
test bh, 1
cmove edx, ecx
cmp edx, 0xe9aa47c5
jle 0x410738
jmp 0x410760
mov edx, 0xb441f633
cmp edx, 0xe9aa47c5
jle 0x410738
jmp 0x410760
cmp eax, 0xe22871bf
je 0x411434
cmp eax, 0xe9084fb2
je 0x411449
cmp eax, 0xf1a91e48
jne 0x40fe90
mov eax, dword [0x44f6a0]
mov edi, 0x4f4de390
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xbe549ae3
not eax
mov edx, eax
and edx, 0x41ab651c
or ecx, edx
xor ecx, 0xbe549ae2
xor eax, ecx
test eax, ecx
setne al
cmp dword [0x44f6a4], 9
mov edx, eax
setg cl
xor dl, cl
and cl, al
mov eax, 0x1105de02
or cl, dl
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, edi
test dl, dl
mov edx, 0x1105de02
jmp 0x411165
cmp eax, 0x16dbb018
je 0x4114d5
cmp eax, 0x21aaddc8
je 0x4114e9
cmp eax, 0x26b95b8b
jne 0x40fe90
lea ecx, [esp + 0xb0]
call fcn.00406090
lea ecx, [ebp + 0x10]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], edx
mov edx, 0x60be5ec2
nop word cs:[eax + eax]
nop
cmp edx, 0xe4b391e5
je 0x410920
cmp edx, 0x3ff01175
je 0x41150d
cmp edx, 0x60be5ec2
jne 0x4108d0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov edx, 0xe4b391e5
mov edi, 0x3ff01175
cmp dword [esp + 0x88], 0
cmove edx, edi
cmp edx, 0xe4b391e5
jne 0x4108d8
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
mov ecx, esi
movsx eax, byte [eax]
push eax
call fcn.004167b0
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
dec ecx
inc eax
jmp 0x4108c0
cmp eax, 0x54ad96d8
je 0x411532
cmp eax, 0x55bb8b56
je 0x41154f
cmp eax, 0x5aed7489
jne 0x40fe90
jmp 0x4120a0
cmp eax, 0xc0bc4ccc
je 0x4115c3
cmp eax, 0xc3bfdde4
jne 0x40fe90
mov ecx, dword [esp + 0x80]
mov eax, 0x14b1b4ee
mov dword [esp + 0xc], ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0xff10dc2
je 0x411646
cmp eax, 0x1105de02
jne 0x40fe90
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov byte [esp + 0x57], al
mov eax, dword [0x44f6a0]
mov ecx, dword [0x44f6a4]
mov edi, 0x4f4de390
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and edx, 0xacbc7882
not eax
and eax, 0x5343877d
or edx, eax
mov eax, edx
xor edx, 0x5343877c
xor eax, 0xacbc7882
and eax, 0xfffffffe
or edx, eax
cmp edx, 0xffffffff
setne al
sete dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
mov ch, ah
or ah, dl
and dl, cl
xor cl, al
xor ah, 1
and ch, al
or ah, cl
or ch, dl
mov edx, 0xff10dc2
mov al, ah
xor al, ch
cmovne edx, edi
test ah, ah
mov eax, 0xff10dc2
cmovne eax, edx
jmp 0x4118d3
cmp eax, 0xb5eb88c8
je 0x41166a
cmp eax, 0xb818b97b
jne 0x40fe90
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, 0x5ca5f6c6
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0x3cc64e31
je 0x411683
cmp eax, 0x42ee20f1
jne 0x40fe90
cmp byte [esp + 0x37], 0
mov eax, 0x65f5f313
mov ecx, 0x21aaddc8
cmovne eax, ecx
jmp 0x4116f4
cmp eax, 0x6cd964fc
je 0x4116ba
cmp eax, 0x6e82a1d8
jne 0x40fe90
mov eax, dword [0x44f6a0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x3b459fca
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0xc4ba6035
or edx, ecx
xor edx, 0xc4ba6034
or eax, edx
cmp eax, 0xffffffff
setne al
cmp dword [0x44f6a4], 9
setg cl
mov edx, ecx
xor cl, al
and dl, al
mov eax, 0x3add7536
or dl, cl
mov ch, dl
xor ch, cl
test dl, dl
mov edx, 0x2b38b5d3
cmovne eax, edx
test cl, cl
cmove eax, edx
test ch, ch
mov edx, 0x3add7536
jmp 0x4118d5
cmp eax, 0xed570a
je 0x4116dc
cmp eax, 0x60580d5
jne 0x40fe90
mov eax, 0x3cc64e31
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0x2d164f15
je 0x41170c
cmp eax, 0x3447a040
jne 0x40fe90
mov eax, dword [esp + 0x68]
mov ecx, dword [ebp + 0x18]
cmp eax, dword [ecx + 0x20]
mov eax, 0x2d164f15
mov ecx, 0x345c738a
cmovb eax, ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0x5ed8b1d5
je 0x411729
cmp eax, 0x63241ad6
jne 0x40fe90
lea ecx, [esp + 0xb0]
call fcn.00406090
lea ecx, [ebp + 0x10]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], edx
mov edx, 0x60be5ec2
nop word cs:[eax + eax]
cmp edx, 0xe4b391e5
je 0x410c20
cmp edx, 0x3ff01175
je 0x41174f
cmp edx, 0x60be5ec2
jne 0x410bd0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov edx, 0xe4b391e5
mov edi, 0x3ff01175
cmp dword [esp + 0x88], 0
cmove edx, edi
cmp edx, 0xe4b391e5
jne 0x410bd8
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
mov ecx, esi
movsx eax, byte [eax]
push eax
call fcn.004167b0
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
dec ecx
inc eax
jmp 0x410bc1
cmp eax, 0xd9046597
je 0x4117c7
cmp eax, 0xe0426133
jne 0x40fe90
mov eax, dword [esp + 0x3c]
mov ecx, 0x6ed240cf
cmp eax, 0x58
mov eax, 0x65f5f313
jmp 0x4116f1
cmp eax, 0x4f4de390
je 0x411877
cmp eax, 0x53f73643
jne 0x40fe90
mov eax, 0x1105de02
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp eax, 0x73e8eb69
je 0x4118e8
cmp eax, 0x7f3d5599
jne 0x40fe90
jmp 0x4120b0
cmp dword [esp + 0x50], 0
mov eax, dword [0x44f6a0]
mov edi, 0x6cd964fc
lea ecx, [eax - 1]
setg byte [esp + 0x56]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
not ecx
or ecx, eax
cmp ecx, 0xffffffff
sete al
cmp dword [0x44f6a4], 0xa
setl cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
or cl, dl
mov eax, ecx
xor al, dl
mov eax, 0x5b7503d6
cmovne edi, eax
test cl, cl
mov eax, 0x6cd964fc
jmp 0x411375
mov eax, dword [0x44f6a0]
mov edi, 0x14928236
mov ebx, 0x73e8eb69
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
mov edx, dword [esp + 8]
and dl, 1
xor eax, ecx
mov byte [esp + 0x73], dl
test eax, ecx
mov eax, dword [0x44f6a4]
sete cl
setne ch
cmp eax, 9
setg dh
cmp eax, 0xa
setl al
and dh, cl
mov cl, al
xor cl, ch
and cl, al
and al, ch
or al, dh
mov edx, ecx
xor dl, al
test al, al
mov eax, 0x73e8eb69
cmovne eax, edi
test cl, cl
cmove eax, ebx
test dl, dl
cmovne eax, edi
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x20]
sub eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov eax, 0x84f1d68c
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
lea ecx, [esp + 0xb0]
call fcn.00406090
lea ecx, [ebp + 0x10]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], edx
mov edx, 0x60be5ec2
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, 0xe4b391e5
je 0x410e40
cmp edx, 0x3ff01175
je 0x411a38
cmp edx, 0x60be5ec2
jne 0x410df0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov edx, 0xe4b391e5
mov edi, 0x3ff01175
cmp dword [esp + 0x88], 0
cmove edx, edi
cmp edx, 0xe4b391e5
jne 0x410df8
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
mov ecx, esi
movsx eax, byte [eax]
push eax
call fcn.004167b0
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
dec ecx
inc eax
jmp 0x410dde
push esi
call fcn.004126b0
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.00409a30
lea eax, [esp + 0xb0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov eax, dword [0x44f6a8]
mov ecx, dword [0x44f6ac]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and edx, 0xdacc2c4b
not eax
mov ebx, eax
and eax, 0xfffffffe
and ebx, 0x2533d3b4
or ebx, edx
xor ebx, 0x2533d3b5
or eax, ebx
mov edx, eax
and eax, 0x24bb7bc5
not edx
and edx, 0xdb44843a
or eax, edx
xor eax, 0x24bb7bc5
mov eax, 0x59aaed9d
sete byte [esp + 0x8c]
cmp ecx, 0xa
setl byte [esp + 0x90]
nop word cs:[eax + eax]
cmp eax, 0x2606f151
jg 0x410f50
cmp eax, 0xb30c0061
je 0x411ac6
cmp eax, 0xc3407acf
jne 0x410ef0
mov eax, 0xf
mov dword [esp + 0xb0], 0
mov dword [esp + 0xc0], 0
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc4], eax
push 0
push dword [ebp + 0x24]
call fcn.004144b0
mov eax, 0x2606f152
cmp eax, 0x2606f151
jle 0x410ef7
nop dword [eax + eax]
cmp eax, 0x2606f152
je 0x410fc5
cmp eax, 0x59aaed9d
jne 0x410ef0
movzx eax, byte [esp + 0x8c]
movzx ecx, byte [esp + 0x90]
mov ah, cl
mov ch, cl
mov edx, eax
xor ah, 1
xor dl, 1
and ch, ah
xor ch, 1
mov dh, ch
or ch, ah
xor dh, ah
xor ch, 1
or ch, dh
and dl, ch
xor ch, 1
and ch, al
or ch, dl
mov edx, eax
or al, cl
xor dl, cl
xor al, 1
or al, dl
mov edx, 0xc3407acf
mov cl, al
xor cl, ch
test al, 1
mov eax, 0x2606f152
cmovne eax, edx
test ch, 1
not cl
cmove eax, edx
test cl, 1
mov edx, 0x2606f152
jmp 0x41104d
mov eax, 0xf
mov dword [esp + 0xb0], 0
mov dword [esp + 0xc0], 0
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc4], eax
push 0
push dword [ebp + 0x24]
call fcn.004144b0
mov eax, dword [0x44f6a8]
mov ecx, dword [0x44f6ac]
mov ebx, 0xc3407acf
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor edx, 1
not eax
and eax, 0xfffffffe
or edx, eax
cmp edx, 0xffffffff
sete al
setne dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
xor ah, al
or cl, dl
mov edx, 0xb30c0061
mov al, cl
xor al, ah
cmovne edx, ebx
test ah, ah
mov ebx, 0xb30c0061
mov eax, edx
cmovne eax, ebx
test cl, cl
cmovne eax, edx
cmp eax, 0x2606f151
jle 0x410ef7
jmp 0x410f50
mov eax, dword [esp + 0x18]
mov ecx, 0x60580d5
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
movsx eax, byte [eax]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
cmp eax, 0x7f
mov eax, 0xaa86705f
jmp 0x412088
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov edi, 0x441d37ef
sub ecx, eax
mov eax, dword [esp + 0x58]
cmp eax, ecx
mov eax, dword [0x44f6a0]
setb byte [esp + 0x5f]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x5bdcf362
not eax
mov edx, eax
and edx, 0xa4230c9d
or ecx, edx
xor ecx, 0x5bdcf363
xor eax, ecx
test eax, ecx
setne al
cmp dword [0x44f6a4], 9
mov edx, eax
setg cl
xor dl, cl
and cl, al
mov eax, 0xbeb70a7d
or cl, dl
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, edi
test dl, dl
mov edx, 0xbeb70a7d
jmp 0x411165
mov eax, dword [esp + 0x50]
mov eax, 0xbd1e0cf1
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [0x44f6a0]
mov edi, 0x26b95b8b
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor ecx, 1
not eax
and eax, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
sete al
cmp dword [0x44f6a4], 0xa
mov edx, eax
setl cl
xor dl, cl
or cl, al
mov eax, 0x63241ad6
xor cl, 1
or cl, dl
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, edi
test dl, dl
mov edx, 0x63241ad6
cmove eax, edi
jmp 0x4118d3
mov eax, dword [0x44f6a0]
mov ecx, dword [0x44f6a4]
mov edi, 0x280d019c
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor edx, 1
not eax
and eax, 0xfffffffe
or edx, eax
cmp edx, 0xffffffff
setne al
sete dl
cmp ecx, 0xa
setl dh
cmp ecx, 9
setg cl
and dh, al
mov ah, cl
and dl, cl
xor cl, al
and ah, al
or dh, dl
or cl, ah
mov eax, ecx
xor al, dh
mov eax, 0x441d37ef
cmovne edi, eax
test cl, cl
mov eax, 0x280d019c
cmovne eax, edi
test dh, dh
jmp 0x412049
mov eax, dword [0x44f6a0]
mov edi, 0xe22871bf
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xf63f6f8c
not eax
and eax, 0x9c09073
or ecx, eax
mov eax, ecx
xor ecx, 0x9400022
xor eax, 0xf63f6f8c
and ecx, 0xeb6144a2
mov edx, eax
and eax, 0xfffffffe
and edx, 0x149ebb5d
or edx, ecx
xor edx, 0x149ebb5c
or eax, edx
mov ecx, eax
and eax, 0xf7346af8
not ecx
and ecx, 0x8cb9507
or eax, ecx
mov ecx, dword [0x44f6a4]
xor eax, 0xf7346af8
sete al
setne dl
cmp ecx, 9
setg dh
cmp ecx, 0xa
setl cl
and dh, al
and dl, cl
or dh, dl
mov dl, cl
or cl, al
xor dl, al
xor cl, 1
mov eax, 0xf8938939
or cl, dl
mov dl, cl
xor dl, dh
test cl, cl
cmovne eax, edi
test dh, dh
cmove eax, edi
test dl, dl
mov edx, 0xf8938939
jmp 0x4118d5
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
sub ecx, eax
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0xb0]
movsx eax, byte [esp + 0x57]
push eax
push 1
push dword [esp + 0x68]
call fcn.00412e40
mov eax, dword [esp + 0x7c]
mov ecx, 0x54ad96d8
inc eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
cmp byte [eax], 0
mov edx, dword [esp + 0x7c]
mov eax, 0x840f0fdb
cmovg eax, ecx
mov dword [esp + 0x10], edx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0x90]
mov edi, 0x42ee20f1
mov ecx, eax
and eax, 0xe3cea01
not ecx
and ecx, 0xf1c315fe
or eax, ecx
mov ecx, eax
xor eax, 0xf1c31bfe
xor ecx, 0xe3ce001
and ecx, 0xfffff1ff
or eax, ecx
mov ecx, eax
and eax, 0xc392d005
not ecx
and ecx, 0x3c6d2ffa
or eax, ecx
xor eax, 0xc392d005
cmp eax, 0x800
mov eax, dword [0x44f6a0]
sete byte [esp + 0x37]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x99cffc71
not eax
mov edx, eax
and edx, 0x6630038e
or ecx, edx
xor ecx, 0x6630038f
or ecx, eax
cmp ecx, 0xffffffff
setne al
cmp dword [0x44f6a4], 9
mov edx, eax
setg cl
xor dl, cl
and cl, al
or cl, dl
mov eax, ecx
xor al, dl
mov eax, 0x73e8eb69
cmovne edi, eax
test cl, cl
mov eax, 0x42ee20f1
cmovne eax, edi
test dl, dl
jmp 0x412049
mov eax, dword [esp + 0x24]
mov dword [esp + 8], 0
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov eax, 0xf665aede
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0x90]
mov ecx, eax
and eax, 0x78f8b27d
not ecx
mov edx, ecx
and ecx, 0xfffffe3f
and edx, 0x87074d82
or edx, eax
xor edx, 0x87074c42
or ecx, edx
mov eax, ecx
and ecx, 0xc0ece6cc
not eax
and eax, 0x3f131933
or ecx, eax
xor ecx, 0xc0ece6cc
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
cmp eax, 0x40
sete al
cmp ecx, 0x100
sete cl
mov edx, eax
and dl, cl
xor al, cl
mov ecx, 0x6e82a1d8
or al, dl
mov eax, 0xc0bc4ccc
cmovne eax, ecx
jmp 0x4116c9
mov eax, 0xf8938939
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov ecx, dword [0x44f6a0]
mov eax, dword [0x44f6a4]
mov edi, 0xbd1e0cf1
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
and edx, 0x9d46dba7
not ecx
and ecx, 0x62b92458
or edx, ecx
mov ecx, edx
xor edx, 0x62b92459
xor ecx, 0x9d46dba6
and ecx, 0xfffffffe
or edx, ecx
mov ecx, edx
and edx, 0xaa4cd90b
not ecx
and ecx, 0x55b326f4
or edx, ecx
xor edx, 0xaa4cd90b
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
mov eax, 0x5b7503d6
setg dh
and ch, dl
and cl, dh
or dh, dl
or ch, cl
mov cl, dh
xor cl, ch
test ch, ch
cmovne eax, edi
test dh, dh
mov edx, 0x5b7503d6
cmovne eax, edx
test cl, cl
jmp 0x412049
cmp byte [esp + 0x72], 0
mov eax, 0xd2169f6b
mov ecx, 0xd5b7d161
jmp 0x4116c9
mov eax, dword [esp + 0x30]
mov ecx, 0x65f5f313
add eax, 2
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [ebp + 0x24]
mov eax, 0xed570a
cmova eax, ecx
jmp 0x4116f4
movsd xmm0, qword [esp + 0x90]
lea eax, [ebp + 0x10]
movsd qword [eax], xmm0
mov eax, 0x63241ad6
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov ecx, dword [esp + 0x64]
mov eax, 0x840f0fdb
mov dword [esp + 0x10], ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0x28]
cmp eax, 0x2d
mov eax, dword [0x44f6a0]
sete byte [esp + 0x2f]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
xor eax, ecx
test eax, ecx
mov eax, dword [0x44f6a4]
sete cl
setne dl
cmp eax, 9
setg ch
cmp eax, 0xa
setl al
and ch, cl
and dl, al
or ch, dl
mov edx, eax
or al, cl
xor dl, cl
xor al, 1
or al, dl
mov edx, 0xb5eb88c8
mov cl, al
xor cl, ch
test al, al
mov eax, 0x5aed7489
cmovne eax, edx
test ch, ch
cmove eax, edx
test cl, cl
mov edx, 0x5aed7489
jmp 0x4118d5
lea eax, [ebp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ecx
mov ecx, 0x7102bba8
nop word cs:[eax + eax]
nop
cmp ecx, 0x3cce678
je 0x411630
cmp ecx, 0x6562f933
je 0x411c6c
cmp ecx, 0x7102bba8
jne 0x4115f0
mov dword [esp + 0x8c], eax
mov ecx, 0x3cce678
mov edx, 0x6562f933
cmp dword [esp + 0x8c], 0
cmove ecx, edx
cmp ecx, 0x3cce678
jne 0x4115f8
movsx eax, byte [ebp + 0x1c]
mov ecx, esi
push eax
call fcn.004167b0
mov eax, dword [esp + 0x8c]
dec eax
jmp 0x4115e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebp + 0x24]
mov eax, 0xf665aede
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0x28]
mov eax, 0x55bb8b56
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x18]
mov ecx, eax
mov eax, dword [eax + 0x24]
cmp dword [ecx + 0x20], 1
mov ecx, 0x2d164f15
sbb eax, 0
mov eax, 0x3447a040
cmovl eax, ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
cmp byte [esp + 0x56], 0
mov eax, 0x3cc64e31
mov ecx, 0xf1a91e48
cmovne eax, ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x20]
cmp byte [ecx + eax], 0x30
mov eax, 0x65f5f313
mov ecx, 0x5ed8b1d5
cmove eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, 0x84f1d68c
mov dword [esp + 0x1c], 0
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x20]
movsx eax, byte [eax + ecx + 1]
mov ecx, 0x6ed240cf
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0x78
mov eax, 0xe0426133
jmp 0x412088
movsd xmm0, qword [esp + 0x90]
lea eax, [ebp + 0x10]
mov edi, 0xc3bfdde4
mov ebx, 0x26b95b8b
movsd qword [eax], xmm0
mov eax, dword [0x44f6a0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x6b06f4c
not eax
and eax, 0xf94f90b3
or ecx, eax
mov eax, ecx
xor ecx, 0xf94f90b2
xor eax, 0x6b06f4c
and eax, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
setne al
cmp dword [0x44f6a4], 9
setg cl
mov edx, ecx
xor cl, al
or dl, al
mov eax, 0x26b95b8b
mov ch, dl
xor ch, cl
test cl, cl
cmovne eax, edi
test dl, dl
cmovne eax, ebx
test ch, ch
jmp 0x412049
lea ecx, [esp + 0xb0]
call fcn.00406090
lea ecx, [ebp + 0x10]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], edx
mov edx, 0x60be5ec2
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, 0xe4b391e5
je 0x411850
cmp edx, 0x3ff01175
je 0x411d27
cmp edx, 0x60be5ec2
jne 0x411800
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov edx, 0xe4b391e5
mov edi, 0x3ff01175
cmp dword [esp + 0x88], 0
cmove edx, edi
cmp edx, 0xe4b391e5
jne 0x411808
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
mov ecx, esi
movsx eax, byte [eax]
push eax
call fcn.004167b0
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
dec ecx
inc eax
jmp 0x4117ed
mov eax, dword [0x44f6a0]
mov ecx, dword [0x44f6a4]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and edx, 1
not eax
mov edi, eax
and edi, 0xfffffffe
or edx, edi
mov edi, 0x5ca5f6c6
not edx
or edx, eax
cmp edx, 0xffffffff
sete al
setne dl
cmp ecx, 9
setg ah
cmp ecx, 0xa
setl cl
and ah, al
mov ch, cl
xor ch, dl
and ch, cl
and cl, dl
mov edx, 0xb818b97b
or cl, ah
mov al, ch
xor al, cl
cmovne edx, edi
test cl, cl
mov eax, edx
cmovne eax, edi
test ch, ch
cmove eax, edx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov al, byte [esp + 0x73]
mov eax, dword [0x44f568]
mov ecx, dword [0x44f56c]
mov edi, 0x92e2a918
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and edx, 0xd44ffe84
not eax
and eax, 0x2bb0017b
or edx, eax
mov eax, edx
xor edx, 0x2bb0017a
xor eax, 0xd44ffe84
and eax, 0xfffffffe
or edx, eax
mov eax, edx
and edx, 0xcb9cccd2
not eax
and eax, 0x3463332d
or edx, eax
xor edx, 0xcb9cccd2
sete al
sete byte [esp + 0x88]
cmp ecx, 0xa
setl cl
mov edx, eax
setl byte [esp + 0x8c]
xor dl, cl
or cl, al
mov eax, 0xe9aa47c6
xor cl, 1
or cl, dl
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, edi
test dl, dl
mov edx, 0x45db3d0d
cmove eax, edi
test ch, ch
mov ecx, 0xe9aa47c6
cmove eax, ecx
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 0x14]
nop dword [eax + eax]
cmp edx, 0xe9aa47c5
jg 0x4119c0
cmp edx, 0x92e2a918
je 0x411a25
cmp edx, 0xb441f633
jne 0x411990
mov dword [esp + 0x90], ecx
mov edx, eax
cmp edx, 0xe9aa47c5
jle 0x411998
nop dword [eax]
cmp edx, 0xe9aa47c6
je 0x411db6
cmp edx, 0x45db3d0d
jne 0x411990
movzx ebx, byte [esp + 0x88]
movzx edx, byte [esp + 0x8c]
mov edi, 0xb441f633
mov esi, 0x92e2a918
xor dl, bl
mov bh, dl
xor bh, 1
and bl, bh
xor bh, bl
test dl, 1
mov edx, 0x92e2a918
cmovne edx, edi
test bl, 1
cmove edx, esi
test bh, 1
lea esi, [esp + 0x90]
cmove edx, edi
cmp edx, 0xe9aa47c5
jle 0x411998
jmp 0x4119c0
mov edx, 0xb441f633
cmp edx, 0xe9aa47c5
jle 0x411998
jmp 0x4119c0
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
lea eax, [ebp + 0x10]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ecx
mov ecx, 0x7102bba8
nop dword [eax + eax]
cmp ecx, 0x3cce678
je 0x411ab0
cmp ecx, 0x6562f933
je 0x411dd2
cmp ecx, 0x7102bba8
jne 0x411a70
mov dword [esp + 0x8c], eax
mov ecx, 0x3cce678
mov edx, 0x6562f933
cmp dword [esp + 0x8c], 0
cmove ecx, edx
cmp ecx, 0x3cce678
jne 0x411a78
movsx eax, byte [ebp + 0x1c]
mov ecx, esi
push eax
call fcn.004167b0
mov eax, dword [esp + 0x8c]
dec eax
jmp 0x411a63
lea ecx, [esp + 0xb0]
call fcn.00406090
mov edx, dword [edi]
mov ecx, edi
push eax
push dword [esp + 0x24]
push dword [ebp + 0x20]
call dword [edx + 0x1c]
mov eax, dword [0x44f560]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x19b90c7f
not eax
mov edx, eax
and edx, 0xe646f380
or ecx, edx
xor ecx, 0x19b90c7e
xor eax, ecx
test eax, ecx
mov eax, dword [ebp + 0x18]
mov edi, dword [eax + 0x30]
mov eax, dword [0x44f564]
sete byte [esp + 0x88]
cmp eax, 0xa
mov eax, 0x882884e7
setl byte [esp + 0x8c]
nop dword [eax]
cmp eax, 0xf6564ec3
jg 0x411ba0
cmp eax, 0x882884e7
je 0x411b4a
cmp eax, 0xe24c3dae
jne 0x411b30
jmp 0x411df7
mov al, byte [esp + 0x88]
mov cl, byte [esp + 0x8c]
mov ebx, 0xf6564ec4
mov edx, eax
mov ch, al
xor dl, 1
and dl, cl
xor cl, 1
xor ch, cl
and cl, al
or cl, dl
and ch, al
mov eax, 0x2458cea1
mov edx, ecx
xor dl, ch
test cl, 1
cmovne eax, ebx
test ch, 1
mov ecx, 0x2458cea1
cmove eax, ecx
test dl, 1
jmp 0x411c59
cmp eax, 0xf6564ec4
je 0x411bcf
cmp eax, 0x2458cea1
jne 0x411b30
mov ecx, dword [edi + 4]
mov dword [esp + 0x94], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xf6564ec4
cmp eax, 0xf6564ec3
jle 0x411b37
jmp 0x411ba0
mov ecx, dword [edi + 4]
mov dword [esp + 0x94], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x44f560]
mov ebx, 0xe24c3dae
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x2deb27a8
not eax
and eax, 0xd214d857
or ecx, eax
mov eax, ecx
xor ecx, 0x82000810
xor eax, 0x2deb27a8
and ecx, 0x82c22f30
mov edx, eax
and eax, 0xfffffffe
and edx, 0x7d3dd0cf
or edx, ecx
xor edx, 0x7d3dd0ce
or eax, edx
cmp eax, 0xffffffff
sete al
cmp dword [0x44f564], 0xa
setl cl
xor al, cl
mov edx, eax
not dl
and dl, cl
mov ecx, edx
xor cl, al
test al, al
mov eax, 0x2458cea1
cmovne eax, ebx
test dl, dl
mov edx, 0x2458cea1
cmove eax, edx
test cl, cl
cmovne eax, ebx
cmp eax, 0xf6564ec3
jle 0x411b37
jmp 0x411ba0
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
lea eax, [ebp + 0x10]
lea ecx, [esp + 0xb0]
mov dword [eax + 4], ebx
mov dword [eax], edi
call fcn.00406090
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov edx, 0x60be5ec2
nop word cs:[eax + eax]
nop
cmp edx, 0xe4b391e5
je 0x411d00
cmp edx, 0x3ff01175
je 0x411fb5
cmp edx, 0x60be5ec2
jne 0x411cb0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov edx, 0xe4b391e5
mov edi, 0x3ff01175
cmp dword [esp + 0x88], 0
cmove edx, edi
cmp edx, 0xe4b391e5
jne 0x411cb8
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
mov ecx, esi
movsx eax, byte [eax]
push eax
call fcn.004167b0
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
dec ecx
inc eax
jmp 0x411ca0
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
lea eax, [ebp + 0x10]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ecx
mov ecx, 0x7102bba8
nop word [eax + eax]
cmp ecx, 0x3cce678
je 0x411da0
cmp ecx, 0x6562f933
je 0x411fe2
cmp ecx, 0x7102bba8
jne 0x411d60
mov dword [esp + 0x8c], eax
mov ecx, 0x3cce678
mov edx, 0x6562f933
cmp dword [esp + 0x8c], 0
cmove ecx, edx
cmp ecx, 0x3cce678
jne 0x411d68
movsx eax, byte [ebp + 0x1c]
mov ecx, esi
push eax
call fcn.004167b0
mov eax, dword [esp + 0x8c]
dec eax
jmp 0x411d52
mov eax, dword [esp + 0x90]
mov eax, 0x14928236
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
movsd xmm0, qword [esp + 0x90]
lea eax, [ebp + 0x10]
movsd qword [eax], xmm0
mov eax, 0xd9046597
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
push esi
call fcn.00412a70
add esp, 4
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.00409a30
lea eax, [esp + 0x98]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov eax, dword [0x44f6b0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x78d220eb
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0x872ddf14
or edx, ecx
xor edx, 0x872ddf15
or eax, edx
mov ecx, eax
and eax, 0x6e5a9bf4
not ecx
and ecx, 0x91a5640b
or eax, ecx
xor eax, 0x6e5a9bf4
mov eax, dword [0x44f6b4]
sete byte [esp + 0x8c]
cmp eax, 0xa
mov eax, 0x46517ddb
setl byte [esp + 0x90]
nop dword [eax + eax]
cmp eax, 0x46488fd5
jg 0x411ec0
cmp eax, 0xc5868360
je 0x411e9a
cmp eax, 0xfbcae514
jne 0x411e80
jmp 0x41205c
mov eax, dword [edi]
lea edx, [esp + 0x98]
mov ecx, edi
push edx
call dword [eax + 0x14]
mov eax, 0x46488fd6
cmp eax, 0x46488fd5
jle 0x411e87
nop word cs:[eax + eax]
nop
cmp eax, 0x46488fd6
je 0x411f2d
cmp eax, 0x46517ddb
jne 0x411e80
movzx eax, byte [esp + 0x8c]
movzx ecx, byte [esp + 0x90]
mov ebx, 0xc5868360
mov edx, ecx
xor dl, 1
mov ch, dl
mov ah, dl
and ch, cl
xor ah, ch
xor ch, 1
or ch, cl
xor ch, 1
or ch, ah
mov cl, ch
xor ch, 1
and cl, al
xor al, 1
and ch, al
or ch, cl
mov cl, al
xor al, dl
and cl, dl
mov edx, 0x46488fd6
or al, cl
mov cl, al
xor cl, ch
test cl, 1
cmovne edx, ebx
test al, 1
mov eax, 0x46488fd6
cmovne eax, edx
test ch, 1
jmp 0x411fa2
mov eax, dword [edi]
lea edx, [esp + 0x98]
mov ecx, edi
push edx
call dword [eax + 0x14]
mov eax, dword [0x44f6b0]
mov ecx, dword [0x44f6b4]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and edx, 1
not eax
mov ebx, eax
and ebx, 0xfffffffe
or edx, ebx
mov ebx, 0xc5868360
not edx
or edx, eax
cmp edx, 0xffffffff
setne al
sete dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
mov ch, ah
or ah, dl
and dl, cl
xor cl, al
xor ah, 1
and ch, al
or ah, cl
or ch, dl
mov edx, 0xfbcae514
mov al, ah
xor al, ch
cmovne edx, ebx
test ah, ah
mov eax, 0xfbcae514
cmovne eax, edx
test ch, ch
cmove eax, edx
cmp eax, 0x46488fd5
jle 0x411e87
jmp 0x411ec0
movsd xmm0, qword [esp + 0x90]
lea eax, [ebp + 0x10]
movsd qword [eax], xmm0
mov eax, 0x14b1b4ee
mov dword [esp + 0xc], 0
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov eax, dword [0x44f6a0]
movsd xmm0, qword [esp + 0x90]
mov edi, 0x99f4f7b7
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
xor eax, ecx
test eax, ecx
mov eax, dword [0x44f6a4]
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
mov eax, 0x638a6d31
setg dh
xor ch, cl
or dh, dl
mov cl, dh
xor cl, ch
test ch, ch
cmovne eax, edi
test dh, dh
mov edx, 0x638a6d31
cmovne eax, edx
test cl, cl
lea edx, [ebp + 0x10]
movsd qword [edx], xmm0
cmove eax, edi
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
lea ecx, [esp + 0x98]
call fcn.00405960
mov dword [esp + 0x4c], eax
mov ecx, 0x3cc64e31
mov eax, dword [esp + 0x4c]
movsx eax, byte [eax]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
cmp eax, 0x7f
mov eax, 0xe9084fb2
cmove eax, ecx
cmp eax, 0x16dbb017
jg 0x40ff80
jmp 0x40fe9b
mov cl, byte [esp + 0x2f]
mov eax, 0x713ce6f
jmp 0x40fe89
mov eax, dword [ebp + 0x20]
mov ecx, 0x713ce6f
movsx eax, byte [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
cmp eax, 0x2b
mov eax, 0x71a19bca
cmove eax, ecx
mov cl, 1
jmp 0x40fe89
mov esi, dword [esp + 0x68]
lea ecx, [esp + 0xb0]
sub esi, dword [esp + 0x74]
mov edi, dword [esp + 0x74]
call fcn.00406090
lea ecx, [ebp + 0x10]
add eax, edi
lea edi, [esp + 0x90]
mov ebx, 0x3ff01175
mov edx, ecx
mov ecx, dword [ecx]
mov edx, dword [edx + 4]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov ecx, 0x60be5ec2
nop dword [eax + eax]
cmp ecx, 0xe4b391e5
je 0x412160
cmp ecx, 0x3ff01175
je 0x412184
cmp ecx, 0x60be5ec2
jne 0x412120
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], eax
mov ecx, 0xe4b391e5
cmp dword [esp + 0x88], 0
cmove ecx, ebx
cmp ecx, 0xe4b391e5
jne 0x412128
nop
mov eax, dword [esp + 0x8c]
mov ecx, edi
movsx eax, byte [eax]
push eax
call fcn.004167b0
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
dec esi
inc eax
jmp 0x412113
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov esi, dword [ebp + 0x18]
lea edx, [ebp + 0x10]
lea edi, [esp + 0x90]
mov ebx, 0x6562f933
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0
movsx esi, byte [ebp + 0x1c]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
mov eax, 0x7102bba8
nop
cmp eax, 0x3cce678
je 0x412210
cmp eax, 0x6562f933
je 0x412226
cmp eax, 0x7102bba8
jne 0x4121d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
mov eax, 0x3cce678
cmp dword [esp + 0x8c], 0
cmove eax, ebx
cmp eax, 0x3cce678
jne 0x4121d7
nop word [eax + eax]
mov ecx, edi
push esi
call fcn.004167b0
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0xc], eax
jmp 0x4121c9
movsd xmm0, qword [esp + 0x90]
mov eax, dword [ebp + 0xc]
mov edi, 0xa45fe795
movsd qword [eax], xmm0
lea eax, [esp + 0x98]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x90]
mov eax, 0x5c86573e
nop word cs:[eax + eax]
nop
cmp eax, 0xabac62fb
je 0x4123ee
cmp eax, 0xeb4c9b95
je 0x41241d
cmp eax, 0x5c86573e
jne 0x412260
mov esi, dword [esp + 0x90]
mov ecx, dword [0x44f540]
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
and edx, 1
not ecx
mov ebx, ecx
and ebx, 0xfffffffe
or edx, ebx
mov ebx, 0xdb26e4c3
xor ecx, edx
test ecx, edx
mov ecx, dword [0x44f544]
setne dl
sete byte [esp + 0x87]
cmp ecx, 9
setg dh
cmp ecx, 0xa
mov cl, dh
setl byte [esp + 0x88]
xor dh, dl
and cl, dl
or cl, dh
mov dl, cl
xor dl, dh
cmovne ebx, edi
test cl, cl
mov ecx, 0xdb26e4c3
cmovne ecx, ebx
test dh, dh
mov edx, 0xb6ec62b
cmove ecx, ebx
nop dword [eax]
cmp edx, 0xb6ec62a
jg 0x412320
cmp edx, 0xa45fe795
je 0x41230d
cmp edx, 0xdb26e4c3
jne 0x4122f0
jmp 0x4123ce
mov edx, 0x39fa579a
cmp edx, 0xb6ec62a
jle 0x4122f8
nop word [eax + eax]
cmp edx, 0x39fa579a
je 0x4123af
cmp edx, 0xb6ec62b
jne 0x4122f0
movzx edx, byte [esp + 0x87]
movzx eax, byte [esp + 0x88]
mov ebx, edx
mov dh, al
xor bl, 1
xor dh, 1
and dl, bl
mov ah, bl
mov bh, dh
and ah, dl
xor dl, bl
and bh, al
or dl, ah
mov ah, dh
xor ah, bh
xor bh, 1
or bh, al
mov al, dl
xor bh, 1
xor al, 1
or bh, ah
and al, bh
xor bh, 1
and bh, dl
or bh, al
mov eax, ebx
and al, dh
xor dh, bl
or dh, al
mov al, dh
xor al, bh
test dh, 1
mov edx, 0x39fa579a
cmovne edx, edi
test bh, 1
mov ebx, 0x39fa579a
cmove edx, edi
test al, 1
cmove edx, ebx
cmp edx, 0xb6ec62a
jle 0x4122f8
jmp 0x412320
cmp dword [esi + 0x14], 0xf
mov edx, ecx
seta byte [esp + 0x8c]
cmp edx, 0xb6ec62a
jle 0x4122f8
jmp 0x412320
cmp byte [esp + 0x8c], 0
mov eax, 0xeb4c9b95
mov ecx, 0xabac62fb
cmovne eax, ecx
cmp eax, 0xabac62fb
jne 0x41226b
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00405670
add esp, 8
mov eax, 0xeb4c9b95
cmp eax, 0xabac62fb
jne 0x41226b
jmp 0x4123ee
mov eax, dword [esp + 0x90]
mov esi, 0xa45fe795
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x90]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x90]
mov byte [eax], 0
mov eax, dword [esp + 0x48]
lea eax, [esp + 0xb0]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x90]
mov eax, 0x5c86573e
nop word cs:[eax + eax]
cmp eax, 0xabac62fb
je 0x4125d4
cmp eax, 0xeb4c9b95
je 0x412603
cmp eax, 0x5c86573e
jne 0x412470
mov eax, dword [esp + 0x90]
mov ecx, dword [0x44f540]
mov edi, 0xdb26e4c3
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
and edx, 1
not ecx
mov ebx, ecx
and ebx, 0xfffffffe
or edx, ebx
not edx
or edx, ecx
mov ecx, dword [0x44f544]
cmp edx, 0xffffffff
sete dl
setne dh
sete byte [esp + 0x87]
cmp ecx, 9
setg bl
cmp ecx, 0xa
setl cl
setl byte [esp + 0x88]
and dl, bl
and cl, dh
or dl, cl
mov ecx, ebx
xor bl, dh
and cl, dh
or bl, cl
mov ecx, ebx
xor cl, dl
mov ecx, 0xdb26e4c3
cmovne edi, esi
test bl, bl
cmovne ecx, edi
test dl, dl
mov edx, 0xb6ec62b
cmove ecx, edi
nop dword [eax + eax]
cmp edx, 0xb6ec62a
jg 0x412540
cmp edx, 0xa45fe795
je 0x41252d
cmp edx, 0xdb26e4c3
jne 0x412510
jmp 0x4125b4
mov edx, 0x39fa579a
cmp edx, 0xb6ec62a
jle 0x412518
nop word [eax + eax]
cmp edx, 0x39fa579a
je 0x412598
cmp edx, 0xb6ec62b
jne 0x412510
movzx edx, byte [esp + 0x87]
movzx ebx, byte [esp + 0x88]
mov edi, 0x39fa579a
xor dl, 1
xor bl, 1
mov dh, dl
and dh, bl
xor bl, dl
or dh, bl
mov dl, dh
xor dl, bl
test dl, 1
cmovne edi, esi
test dh, 1
mov edx, 0x39fa579a
cmovne edx, edi
test bl, 1
cmove edx, edi
cmp edx, 0xb6ec62a
jle 0x412518
jmp 0x412540
cmp dword [eax + 0x14], 0xf
mov edx, ecx
seta byte [esp + 0x8c]
cmp edx, 0xb6ec62a
jle 0x412518
jmp 0x412540
cmp byte [esp + 0x8c], 0
mov eax, 0xeb4c9b95
mov ecx, 0xabac62fb
cmovne eax, ecx
cmp eax, 0xabac62fb
jne 0x41247b
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00405670
add esp, 8
mov eax, 0xeb4c9b95
cmp eax, 0xabac62fb
jne 0x41247b
jmp 0x4125d4
mov eax, dword [esp + 0x90]
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x90]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x90]
mov byte [eax], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc8]
xor ecx, ebp
call fcn.0041e8c8
mov eax, dword [ebp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret