Function at 0x413ffe
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
push edi
mov dword [ebp - 8], 0xffffffd7
call fcn.00413c6e
mov eax, dword [0x41b02c]
or eax, dword [0x41b064]
mov ecx, dword [0x41b02c]
sub ecx, eax
mov dword [0x41b02c], ecx
mov dword [ebp - 0xc], 0xffffffc8
xor ecx, ecx
cmp dword [0x41b050], 0x25
setg cl
mov edx, dword [0x41b074]
sar edx, cl
mov dword [0x41b074], edx
mov dword [ebp - 4], 0x33
mov eax, dword [0x41b078]
add eax, dword [0x41b030]
test eax, eax
je 0x41407d
mov ecx, dword [0x41b058]
add ecx, dword [0x41b028]
mov edx, dword [0x41b040]
sar edx, cl
mov dword [0x41b040], edx
mov eax, 1
test eax, eax
je 0x414097
xor ecx, ecx
cmp dword [ebp - 4], 0x3b
sete cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
xor eax, 0xffffffce
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
or edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setge dl
mov eax, dword [ebp - 0xc]
mov ecx, edx
sar eax, cl
mov dword [ebp - 0xc], eax
mov edx, 0x2e
mov ecx, dword [ebp - 8]
shl edx, cl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x35
setl cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setge cl
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
or eax, dword [ebp - 0xc]
test eax, eax
je 0x41411a
mov edx, 0x2f
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
sub ecx, 0x23
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and eax, 0x20
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 4]
setl dl
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffce
jle 0x414158
mov ecx, dword [ebp - 8]
add ecx, 0x3c
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
mov eax, 0xffffffd3
mov ecx, dword [ebp - 0xc]
sar eax, cl
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
imul edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
lea eax, [edx + ecx + 0x30]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
or ecx, 0x29
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
sar eax, 0xd9
mov ecx, dword [ebp - 8]
or ecx, eax
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
imul ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
shl edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
shl eax, 0x26
test eax, eax
je 0x4141c9
mov ecx, dword [ebp - 0xc]
or ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
push fcn.00402e90
xor ecx, ecx
cmp dword [ebp - 8], 0x24
setl cl
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
xor ecx, 0x20
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0x35
jg 0x41421c
mov ecx, dword [ebp - 8]
sub ecx, 0x2a
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
xor eax, 0xffffffdd
test eax, eax
je 0x414234
mov ecx, dword [ebp - 8]
shl ecx, 0xc4
mov edx, dword [ebp - 8]
shl edx, cl
mov dword [ebp - 8], edx
xor ecx, ecx
cmp dword [ebp - 4], 0x31
setne cl
mov eax, dword [ebp - 0xc]
sar eax, cl
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
sar ecx, 0xf0
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0xc]
imul ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 8]
xor ecx, 0x39
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
and ecx, 0x27
test ecx, ecx
je 0x41427a
call fcn.0040e749
mov edx, dword [ebp - 8]
and edx, 0xffffffc2
mov eax, dword [ebp - 8]
sub eax, edx
mov dword [ebp - 8], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x2c
setl cl
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 0xc]
test eax, eax
je 0x4142b7
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 4]
setne dl
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setg dl
mov eax, dword [ebp - 8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 8], eax
push dword fs:[0]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
sar edx, cl
test edx, edx
je 0x4142e8
mov eax, dword [ebp - 0xc]
sar eax, 0xf3
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
or ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 4], 0xffffffd8
je 0x414301
call fcn.0040e378
mov ecx, dword [ebp - 8]
or ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
shl eax, cl
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
add ecx, 0x32
test ecx, ecx
je 0x41431e
call fcn.004158b2
mov ecx, dword [ebp - 8]
or ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
shl edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
shl eax, cl
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 0xc]
setne al
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
xor edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
xor eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setl dl
mov eax, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 8]
test ecx, ecx
je 0x414389
mov edx, dword [ebp - 0xc]
or edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
and ecx, 0x32
mov edx, dword [ebp - 8]
add edx, ecx
mov dword [ebp - 8], edx
mov dword fs:[0], esp
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
shl eax, cl
mov edx, dword [ebp - 4]
mov ecx, eax
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
shl eax, cl
mov edx, dword [ebp - 0xc]
mov ecx, eax
sar edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
jge 0x4143d8
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x3b
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 8], 0x2b
setl al
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
shl ecx, 0x3d
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 8]
setl cl
mov edx, dword [ebp - 0xc]
or edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
and eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 4]
setge al
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
xor ecx, ecx
cmp edx, dword [ebp - 0xc]
setg cl
mov eax, dword [ebp - 0xc]
shl eax, cl
mov dword [ebp - 0xc], eax
mov ecx, 0xfffffff3
test ecx, ecx
je 0x414459
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 0xc]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0xc], eax
cmp dword [ebp - 4], 0xffffffcd
jle 0x414474
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 8]
setl dl
mov eax, dword [ebp - 4]
mov ecx, edx
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
or edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
sete cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
push 0xef0
push 0
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorGroup]
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 0xc], 0x20
setge al
mov ecx, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
xor eax, eax
cmp edx, dword [ebp - 0xc]
setl al
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sar edx, cl
test edx, edx
je 0x4144f8
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setg cl
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0x22
jl 0x414504
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0xc]
je 0x41452a
mov ecx, dword [ebp - 4]
add ecx, 0x21
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
xor ecx, ecx
cmp dword [ebp - 0xc], 0x37
sete cl
mov eax, dword [ebp - 0xc]
sar eax, cl
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
xor ecx, 0xffffffdf
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setge cl
mov edx, dword [ebp - 0xc]
xor edx, ecx
mov dword [ebp - 0xc], edx
mov eax, 1
test eax, eax
je 0x414576
xor ecx, ecx
cmp dword [ebp - 8], 0xffffffcf
sete cl
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
or eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
xor ecx, ecx
cmp dword [ebp - 8], 0x3d
sete cl
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setge cl
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
xor ecx, ecx
cmp dword [ebp - 8], 0xffffffdf
setle cl
mov eax, dword [ebp - 0xc]
sar eax, cl
mov dword [ebp - 0xc], eax
xor ecx, ecx
cmp dword [ebp - 8], 0xffffffd2
setne cl
mov edx, dword [ebp - 8]
xor edx, ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 4], 0xffffffd1
je 0x4145de
mov eax, dword [ebp - 4]
sar eax, 0x37
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
sar ecx, 0x23
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
mov eax, 0x32
mov ecx, dword [ebp - 8]
sar eax, cl
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
xor eax, eax
cmp edx, dword [ebp - 8]
setg al
mov ecx, dword [ebp - 0xc]
or ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 4]
test eax, eax
je 0x414630
mov ecx, dword [ebp - 8]
or ecx, 0xffffffc5
mov edx, dword [ebp - 0xc]
xor edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
xor eax, 0x24
test eax, eax
je 0x41465c
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
add edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, dword [ebp - 0xc]
setl cl
mov edx, dword [ebp - 0xc]
and edx, ecx
mov dword [ebp - 0xc], edx
call fcn.00413b6a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sar eax, cl
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 0xc], ecx
call fcn.0040e378
mov edx, dword [ebp - 8]
and edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
cmp dword [0x41b09c], 0
je 0x4149d0
call fcn.00418687
mov edx, 0x3b
mov ecx, dword [ebp - 0xc]
sar edx, cl
mov eax, dword [ebp - 8]
or eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
sar eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
xor edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0xc]
jge 0x4146fc
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 8]
setne dl
mov eax, dword [ebp - 8]
mov ecx, edx
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
sub ecx, 0x3b
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
xor eax, eax
test eax, eax
je 0x41471e
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x3c
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 4], 0xffffffd1
setle al
mov ecx, dword [ebp - 4]
or ecx, eax
mov dword [ebp - 4], ecx
mov edx, 0x34
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x34]
push ecx
call sub.ADVAPI32.dll_GetTrusteeFormA
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
lea ecx, [eax + edx + 0x24]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
or edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x38], str.v0AD245q18WUF8356
push 0x4d7
mov ecx, dword [ebp - 0x38]
push ecx
push 0x5c1
call dword [sym.imp.ADVAPI32.dll_RegRestoreKeyA]
mov edx, dword [ebp - 8]
and edx, dword [ebp - 8]
test edx, edx
je 0x414797
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea edx, [ecx + eax + 0x33]
mov dword [ebp - 0xc], edx
xor eax, eax
test eax, eax
je 0x4147ab
mov ecx, dword [ebp - 4]
or ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0x54], str.h39yZ76flrK3w6
mov dword [ebp - 0x40], str.X0O9QcQJsXc58T23f8
mov dword [ebp - 0x58], 0xe31
mov dword [ebp - 0x5c], 0x835
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x5c]
push edx
push 0x56d
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
lea edx, [ebp - 0x74]
push edx
mov eax, dword [ebp - 0x40]
push eax
push str.eO9B904642T43
push 0
mov ecx, dword [ebp - 0x54]
push ecx
call dword [sym.imp.ADVAPI32.dll_AccessCheckAndAuditAlarmA]
call fcn.0040e378
mov edx, dword [ebp - 4]
and edx, 0xffffffc2
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0x23
je 0x41482e
mov ecx, dword [ebp - 8]
xor ecx, 0xffffffc6
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
call fcn.00412475
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0xc]
shl ecx, 0x2e
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jl 0x41486a
mov edx, dword [ebp - 8]
and edx, 0xffffffd4
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [0x41b09c]
sub ecx, 1
mov dword [0x41b09c], ecx
call fcn.00418515
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 0xc]
sub eax, edx
mov dword [ebp - 0xc], eax
mov ecx, 0x6b3
test ecx, ecx
je 0x4148a5
mov edx, dword [ebp - 8]
sub edx, 0x24
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
or ecx, 0xffffffd6
test ecx, ecx
je 0x4148c2
mov edx, dword [ebp - 4]
xor ecx, ecx
cmp edx, dword [ebp - 8]
setge cl
mov eax, dword [ebp - 8]
shl eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setne dl
mov eax, dword [ebp - 0xc]
mov ecx, edx
sar eax, cl
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x3f
je 0x4148ee
xor ecx, ecx
cmp dword [ebp - 8], 0x34
sete cl
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
call fcn.00412475
xor eax, eax
cmp dword [ebp - 0xc], 0xffffffc1
setne al
mov ecx, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 8], ecx
call fcn.00406cff
xor edx, edx
cmp dword [ebp - 4], 0x3f
setne dl
mov eax, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffc7
sete cl
mov edx, dword [ebp - 0xc]
and edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 4]
test eax, eax
je 0x41493a
call fcn.004158b2
mov ecx, dword [ebp - 8]
add ecx, 0x33
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
xor eax, 0x1a
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0xc]
add ecx, 0x29
mov eax, dword [ebp - 0xc]
shl eax, cl
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 4]
je 0x414989
mov edx, dword [ebp - 8]
xor ecx, ecx
cmp edx, dword [ebp - 4]
sete cl
mov eax, dword [ebp - 4]
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4149a4
xor edx, edx
cmp dword [ebp - 0xc], 0x3c
setl dl
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
shl eax, 0x36
test eax, eax
je 0x4149cb
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0xffffffc4
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
jmp 0x414697
call fcn.00413c6e
mov eax, dword [ebp - 4]
shl eax, 0xfe
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x21
setge cl
mov edx, dword [ebp - 0xc]
sub edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
sar eax, cl
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
and edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
call fcn.004158b2
mov ecx, dword [ebp - 0xc]
xor ecx, 0xfffffff9
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
xor ecx, ecx
cmp edx, dword [ebp - 4]
setne cl
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 8]
mov ecx, edx
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, 0x39
test ecx, ecx
je 0x414a5a
mov ecx, dword [ebp - 0xc]
and ecx, 0xffffffcd
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
sar eax, cl
test eax, eax
je 0x414a7b
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 4]
setg dl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
shl edx, cl
mov eax, dword [ebp - 8]
or eax, edx
mov dword [ebp - 8], eax
call fcn.0040e0f8
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setl dl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
call fcn.0040e749
mov ecx, dword [ebp - 0xc]
add ecx, 0x3f
mov dword [ebp - 0xc], ecx
call fcn.00415a45
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x3f
mov eax, dword [ebp - 8]
xor eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 4]
jge 0x414ad5
mov edx, dword [ebp - 4]
or edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
and al, 0xd0
mov ecx, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
cmp edx, dword [ebp - 8]
jl 0x414aef
call fcn.0040e0f8
xor eax, eax
cmp dword [ebp - 0xc], 0xffffffdd
setne al
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0xffffffc3
jge 0x414b19
mov edx, dword [ebp - 0xc]
xor eax, eax
cmp edx, dword [ebp - 4]
setne al
mov ecx, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 8], ecx
mov edx, 0x23
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 8]
xor eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
shl ecx, 0x36
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 4]
sub ecx, 0x27
mov eax, dword [ebp - 4]
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
xor ecx, 0x20
test ecx, ecx
je 0x414b62
xor edx, edx
cmp dword [ebp - 8], 0x33
setl dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setl dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
xor ecx, 0x38
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
je 0x414b99
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
or edx, ecx
mov dword [ebp - 0xc], edx
mov eax, 0x3e
mov ecx, dword [ebp - 4]
shl eax, cl
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 0xc]
sub eax, edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 8], 0x27
jg 0x414bd1
mov ecx, 0x24
sub ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 0xc], ecx
call fcn.004158b2
xor ecx, ecx
cmp dword [ebp - 8], 0x33
setne cl
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
sete cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
sar eax, cl
test eax, eax
je 0x414c25
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffd8
setne cl
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
xor eax, dword [ebp - 0xc]
test eax, eax
je 0x414c3d
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
xor eax, eax
cmp dword [ebp - 8], 0xffffffdd
setge al
mov ecx, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 0xc]
setg al
mov ecx, dword [ebp - 8]
and ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
xor edx, 0x22
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
and ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
and eax, 0x39
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 4], 0x26
je 0x414ca0
mov edx, dword [ebp - 0xc]
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x2e
jl 0x414cb4
mov ecx, dword [ebp - 0xc]
or ecx, 0xffffffca
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
or eax, 0xffffffc3
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
and edx, 0xffffffc5
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 8]
setne dl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 4]
sete dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov edx, 0xffffffc2
mov ecx, dword [ebp - 0xc]
sar edx, cl
mov eax, dword [ebp - 8]
mov ecx, edx
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
shl ecx, 0x9f
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
or ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
xor eax, eax
cmp dword [ebp - 8], 0x23
setg al
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 4], 0xffffffd3
jge 0x414d4b
mov edx, dword [ebp - 0xc]
xor ecx, ecx
cmp edx, dword [ebp - 0xc]
sete cl
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
or al, 0x33
test eax, eax
je 0x414d67
call fcn.00413c6e
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
call fcn.00418515
mov ecx, dword [ebp - 8]
or ecx, 0x22
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
and eax, dword [ebp - 8]
test eax, eax
je 0x414da7
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 8]
setl dl
mov eax, dword [ebp - 8]
or eax, edx
mov dword [ebp - 8], eax
call fcn.00412475
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 8]
setl dl
mov eax, dword [ebp - 0xc]
and eax, edx
mov dword [ebp - 0xc], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffc8
setne cl
mov edx, dword [ebp - 8]
add edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
sub eax, 0x25
mov dword [ebp - 0xc], eax
call fcn.0040e749
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 8]
setl dl
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x3f
je 0x414dfc
call fcn.0040dda3
mov ecx, dword [ebp - 4]
or ecx, 0xffffffe0
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
and eax, 0x32
test eax, eax
je 0x414e1d
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
xor edx, edx
cmp dword [ebp - 0xc], 0x38
setle dl
mov eax, dword [ebp - 8]
xor eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
sub ecx, 0x3b
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 4]
jge 0x414e59
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setge dl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 8]
jne 0x414e67
mov edx, dword [ebp - 8]
mov dword [ebp - 8], edx
xor eax, eax
cmp dword [ebp - 0xc], 0x3d
setge al
mov ecx, dword [ebp - 8]
xor ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
imul edx, edx, 0x2b
test edx, edx
je 0x414e90
mov ecx, dword [ebp - 8]
or ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
sar eax, cl
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
shl ecx, 0xd4
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
xor eax, dword [ebp - 4]
test eax, eax
je 0x414ebb
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setge dl
mov eax, dword [ebp - 8]
xor eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
xor ecx, 0x3a
mov edx, dword [ebp - 4]
xor edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 8], 0x31
setg al
mov ecx, dword [ebp - 8]
and ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
xor edx, 0x2f
test edx, edx
je 0x414ef7
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, dword [ebp - 8]
setl cl
mov edx, dword [ebp - 0xc]
or edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 0xc]
or edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
shl eax, 0x26
test eax, eax
je 0x414f26
mov edx, 0xffffffc4
mov ecx, dword [ebp - 0xc]
shl edx, cl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
sar ecx, 0xdc
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 0xc], 0xffffffdd
setg al
mov ecx, dword [ebp - 8]
and ecx, eax
mov dword [ebp - 8], ecx
xor edx, edx
cmp dword [ebp - 8], 0xffffffc6
setne dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
and ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
xor edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
add eax, 0x33
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, 0x2c
mov ecx, dword [ebp - 8]
sar edx, cl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
sar edx, cl
test edx, edx
je 0x414f96
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
add ecx, 0x30
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 8]
je 0x414fc1
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov edx, 0x39
mov ecx, dword [ebp - 8]
shl edx, cl
test edx, edx
je 0x414fe2
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 8]
setl cl
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 0xc]
test eax, eax
je 0x414ff2
call fcn.0040e0f8
xor ecx, ecx
cmp dword [ebp - 4], 0x2c
setne cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0xc]
or ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0xc]
setne dl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 4]
sete dl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0x37
mov edx, dword [ebp - 0xc]
sub edx, ecx
mov dword [ebp - 0xc], edx
xor eax, eax
cmp dword [ebp - 8], 0x38
setl al
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
and ecx, 0x27
mov edx, dword [ebp - 8]
shl edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
xor eax, 0x3f
mov ecx, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sar edx, cl
test edx, edx
je 0x41508e
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 4]
jl 0x4150a9
mov edx, dword [ebp - 8]
xor eax, eax
cmp edx, dword [ebp - 8]
setne al
mov ecx, dword [ebp - 8]
xor ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
or edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
sub eax, edx
mov dword [ebp - 0xc], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x33
setl cl
mov edx, dword [ebp - 0xc]
sub edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sar eax, cl
test eax, eax
je 0x4150e7
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 8]
setne dl
mov eax, dword [ebp - 8]
and eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
imul ecx, ecx, 0xffffffde
mov edx, dword [ebp - 0xc]
xor edx, ecx
mov dword [ebp - 0xc], edx
xor ecx, ecx
cmp dword [ebp - 8], 0x28
setl cl
mov eax, dword [ebp - 0xc]
shl eax, cl
mov dword [ebp - 0xc], eax
call fcn.0040e749
xor ecx, ecx
cmp dword [ebp - 0xc], 0x33
setg cl
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 0xc], 0xffffffca
jle 0x415130
mov eax, dword [ebp - 0xc]
shl eax, 0x3d
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
xor eax, eax
cmp edx, dword [ebp - 4]
setl al
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
and edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
add edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setge cl
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0xc]
shl ecx, 0x2c
mov eax, dword [ebp - 0xc]
sar eax, cl
mov dword [ebp - 0xc], eax
cmp dword [0x41b0a0], 0
je 0x415475
call fcn.0040e51a
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x36
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 0xc], 0xffffffd1
je 0x4151b7
xor eax, eax
cmp dword [ebp - 4], 0x3f
setl al
mov ecx, dword [ebp - 8]
and ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov dword [ebp - 8], edx
mov eax, 0xffffffc9
mov ecx, dword [ebp - 8]
shl eax, cl
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, dword [ebp - 0xc]
setne cl
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
shl eax, cl
mov edx, dword [ebp - 8]
mov ecx, eax
shl edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
shl eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
and ecx, 0x34
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 8]
sete cl
mov edx, dword [ebp - 8]
add edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 0xc]
setge cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sar eax, cl
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0xc], ecx
call fcn.00406cff
mov edx, 0x2b
mov ecx, dword [ebp - 0xc]
shl edx, cl
mov eax, dword [ebp - 8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 8], eax
cmp dword [ebp - 0xc], 0x29
jge 0x415280
call fcn.00413dc6
mov ecx, dword [ebp - 8]
mov dword [ebp - 8], ecx
xor edx, edx
cmp dword [ebp - 0xc], 0x29
setge dl
mov eax, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
sar ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, 0xc
test edx, edx
je 0x4152ae
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
imul ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [0x41b0a0]
sub edx, 1
mov dword [0x41b0a0], edx
mov eax, dword [ebp - 8]
xor eax, 0x20
test eax, eax
je 0x4152f2
mov ecx, dword [ebp - 8]
and ecx, 0x33
mov edx, dword [ebp - 8]
add edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
xor eax, 0xffffffd2
test eax, eax
je 0x41530f
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 8]
setg dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
call fcn.00413b6a
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, 1
test edx, edx
je 0x41533f
call fcn.0040e0f8
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
shl eax, cl
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
call fcn.00406cff
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sar eax, cl
test eax, eax
je 0x415383
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 8], eax
cmp dword [ebp - 4], 0xffffffd6
jle 0x41538e
call fcn.00406cff
mov ecx, dword [ebp - 8]
shl ecx, 0x3f
mov dword [ebp - 8], ecx
mov edx, 0x12
test edx, edx
je 0x4153ae
mov ecx, dword [ebp - 4]
and ecx, 0x38
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
or ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
and edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sar eax, cl
test eax, eax
je 0x4153cd
call fcn.00412475
xor ecx, ecx
cmp dword [ebp - 0xc], 0x2d
setg cl
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
shl eax, 0x34
test eax, eax
je 0x4153f6
mov ecx, dword [ebp - 0xc]
add ecx, 0x24
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jl 0x41540e
mov ecx, 0x3f
sub ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
xor edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
and eax, dword [ebp - 0xc]
test eax, eax
je 0x415429
xor ecx, ecx
cmp dword [ebp - 0xc], 0x3a
setne cl
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 8]
setg cl
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
xor eax, 0xffffffc9
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
mov ecx, 0x18
test ecx, ecx
je 0x415470
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
jmp 0x415180
call fcn.0040e749
xor ecx, ecx
cmp dword [ebp - 0xc], 0x2a
setg cl
mov edx, dword [ebp - 0xc]
and edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 8]
jne 0x4154aa
xor edx, edx
cmp dword [ebp - 4], 0x38
sete dl
mov eax, dword [ebp - 8]
xor eax, edx
mov dword [ebp - 8], eax
xor ecx, ecx
cmp dword [ebp - 0xc], 0x27
setle cl
mov edx, dword [ebp - 0xc]
add edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
xor eax, dword [ebp - 8]
test eax, eax
je 0x4154d8
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 4]
setg dl
mov eax, dword [ebp - 8]
and eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 0xc]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
lea eax, [edx + ecx - 0x26]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
imul ecx, ecx, 0x30
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
and ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
xor edx, 0x3a
test edx, edx
je 0x415533
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setne cl
mov edx, dword [ebp - 0xc]
and edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0x3d
jge 0x41554c
call fcn.00418687
mov ecx, dword [ebp - 4]
or ecx, 0x30
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
call fcn.0040dee2
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setg cl
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
call fcn.00402e90
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, dword [ebp - 0xc]
setl cl
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
and al, 0xd7
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 0xc], ecx
call fcn.00418687
xor edx, edx
cmp dword [ebp - 0xc], 0xffffffdb
setl dl
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
or ecx, 0xffffffd3
mov edx, dword [ebp - 0xc]
xor edx, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 4]
jge 0x4155d1
mov ecx, dword [ebp - 4]
or ecx, 0xffffffdd
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
or eax, 0xffffffdb
mov ecx, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
sar edx, cl
test edx, edx
je 0x4155fc
xor ecx, ecx
cmp dword [ebp - 8], 0x24
setl cl
mov eax, dword [ebp - 0xc]
sar eax, cl
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0x39
jle 0x41562e
mov ecx, dword [ebp - 4]
or ecx, 0x28
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
call fcn.0040dda3
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
call fcn.0040e378
mov eax, dword [ebp - 8]
xor eax, 0xffffffee
mov dword [ebp - 8], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffca
setl cl
mov edx, dword [ebp - 0xc]
shl edx, cl
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sar eax, cl
test eax, eax
je 0x41567a
mov ecx, dword [ebp - 0xc]
sar ecx, 0x26
mov edx, dword [ebp - 0xc]
xor edx, ecx
mov dword [ebp - 0xc], edx
mov eax, 0x38
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
or ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
sub edx, 0x21
test edx, edx
je 0x4156a4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
sar eax, cl
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
or edx, 0x39
mov eax, dword [ebp - 8]
and eax, edx
mov dword [ebp - 8], eax
mov ecx, 0xfffffffb
test ecx, ecx
je 0x4156cc
xor edx, edx
cmp dword [ebp - 8], 0x38
setg dl
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, dword [ebp - 4]
setne dl
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
xor eax, eax
cmp edx, dword [ebp - 0xc]
setl al
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
xor edx, 0x37
test edx, edx
je 0x415715
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 8]
setl cl
mov edx, dword [ebp - 0xc]
sub edx, ecx
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 8]
and ecx, 0x21
mov eax, dword [ebp - 8]
sar eax, cl
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
or ecx, 0x2c
test ecx, ecx
je 0x41573c
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
sub eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
xor ecx, 0xfffffff2
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
xor edx, 0xffffffd4
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x35
test ecx, ecx
je 0x41576d
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sar edx, cl
mov eax, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
or ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 0xc]
setge cl
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
xor eax, eax
cmp dword [ebp - 8], 0x25
sete al
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
xor edx, edx
cmp dword [ebp - 4], 0x29
setle dl
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0xc], eax
call fcn.00402016
xor ecx, ecx
test ecx, ecx
je 0x4157c9
mov edx, dword [ebp - 0xc]
and edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sar edx, cl
test edx, edx
je 0x4157da
call fcn.0040dee2
mov eax, dword [ebp - 4]
xor eax, 0xffffffc7
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jne 0x4157fe
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
or ecx, eax
mov dword [ebp - 4], ecx
mov edx, 1
test edx, edx
je 0x41581a
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, dword [ebp - 8]
sete cl
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
sar ecx, 0x25
mov edx, dword [ebp - 0xc]
sar edx, cl
mov dword [ebp - 0xc], edx
xor eax, eax
cmp dword [ebp - 8], 0x3b
setl al
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, 0x35
mov ecx, dword [ebp - 0xc]
sar edx, cl
mov eax, dword [ebp - 8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 8], eax
call fcn.00412475
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
sar eax, 0x98
mov dword [ebp - 8], eax
call fcn.0040dee2
mov ecx, dword [ebp - 4]
and ecx, 0x2e
mov edx, dword [ebp - 8]
sar edx, cl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
xor eax, dword [ebp - 0xc]
test eax, eax
je 0x4158a2
mov ecx, dword [ebp - 0xc]
or ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor eax, 0xffffffa9
mov dword [ebp - 4], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret