Function at 0x100105b0
Capabilities:
Authenticate hmac
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x234
mov eax, dword [0x4881810]
xor eax, esp
mov dword [esp + 0x230], eax
mov eax, dword [0x494aac0]
fldz
push ebx
push esi
mov dword [eax + 0x7a0], 0
xor eax, eax
push edi
fst dword [0x498d1a8]
push 0x1e0
fst dword [0x498d1ac]
push eax
fst dword [0x498d1b0]
push 0x494ac80
fstp dword [0x498d1b4]
mov dword [0x498d090], 0xffffffff
mov dword [0x498d098], 0xffffffff
mov dword [0x498d094], 0xffffffff
mov word [0x496afd0], ax
mov dword [0x498d160], eax
mov word [0x498d078], ax
mov word [0x498d088], ax
mov word [0x498d08a], ax
mov word [0x498d080], ax
mov word [0x498d082], ax
mov word [0x498d084], ax
mov word [0x498d086], ax
mov dword [0x498d148], eax
mov byte [0x498d200], al
mov byte [0x498d240], al
mov byte [0x498d280], al
mov byte [0x498d1c0], al
mov byte [0x498d2c0], al
mov byte [0x498d4c0], al
mov dword [0x498d178], eax
mov dword [0x498d15c], eax
call fcn.10003da1
push 0x80
push 0
push 0x498d0a0
call fcn.10003da1
push 0x200c
push 0
push 0x498b060
call fcn.10003da1
push 0x80
push 0
push 0x498afe0
call fcn.10003da1
push 0x80
push 0
push 0x496af40
call fcn.10003da1
add esp, 0x3c
mov dword [0x494ae9c], 0x4854df0
xor eax, eax
mov dword [0x498d140], 1
mov word [0x498d074], ax
mov word [0x498d076], ax
mov dword [0x498d174], eax
mov dword [0x498d190], eax
mov dword [0x494ae90], eax
mov dword [0x494ae94], eax
mov dword [0x498d150], eax
mov dword [0x498d154], eax
mov dword [0x498d170], eax
mov dword [0x498d18c], eax
mov dword [0x498d194], eax
mov dword [0x498d09c], eax
mov dword [0x498d130], eax
mov dword [0x498d138], eax
mov dword [0x498d180], eax
mov dword [0x498d12c], eax
mov dword [0x498d14c], eax
mov dword [0x498d158], eax
mov dword [0x498d184], eax
mov dword [0x498d1a0], eax
mov dword [0x498d1a4], eax
mov dword [0x498d13c], eax
mov dword [0x498d128], eax
mov dword [0x498d16c], eax
mov dword [0x498d144], eax
fld1
xor ecx, ecx
fstp qword [0x496afc0]
mov dword [0x498d134], 1
mov dword [0x498d120], eax
mov dword [0x498d124], eax
xor eax, eax
cmp ecx, 1
sete al
mov dword [esp + 0x28], eax
xor eax, eax
fild dword [esp + 0x28]
cmp ecx, 3
setl al
mov dword [esp + 0x28], eax
xor eax, eax
fstp dword [ecx*4 + 0x496af20]
fild dword [esp + 0x28]
test ecx, ecx
sete al
mov dword [esp + 0x28], eax
xor eax, eax
fstp dword [ecx*4 + 0x496af10]
fldz
cmp ecx, 1
fst dword [ecx*4 + 0x496aee0]
fst dword [ecx*4 + 0x496aef0]
fstp dword [ecx*4 + 0x496af00]
fild dword [esp + 0x28]
sete al
mov dword [esp + 0x28], eax
xor eax, eax
cmp ecx, 2
fstp dword [ecx*4 + 0x496aea0]
fild dword [esp + 0x28]
sete al
mov dword [esp + 0x28], eax
fstp dword [ecx*4 + 0x496aeb0]
fild dword [esp + 0x28]
fstp dword [ecx*4 + 0x496aec0]
inc ecx
cmp ecx, 4
jl 0x10010782
mov dword [0x498d08c], 3
xor eax, eax
mov word [eax*2 + 0x496afe0], ax
inc eax
cmp eax, 0x10000
jl 0x10010821
push dword [0x498d554]
lea eax, [esp + 0x30]
mov word [esp + 0x30], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x498d54c], ax
jne 0x10010869
movzx ecx, byte [esp + 0x2d]
movzx eax, byte [esp + 0x2c]
jmp 0x10010873
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [esp + 0x2d]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [0x498d54c], ax
call fcn.1000f7a0
push 0
push 0
push dword [0x498d554]
mov edi, eax
call fcn.10034c80
push dword [0x498d554]
lea eax, [esp + 0x22c]
push 0x20
push 1
push eax
call fcn.10034540
push 2
push 0
push dword [0x498d554]
call fcn.10034c80
push dword [0x498d554]
call fcn.10034dc0
mov ebx, eax
lea esi, [esp + 0x248]
add esp, 0x2c
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
mov edi, edi
push 4
push 0x4881e18
push esi
call fcn.10003d5d
add esp, 0xc
test eax, eax
je 0x10010902
inc esi
lea eax, [esp + 0x238]
cmp esi, eax
jbe 0x100108e0
jmp 0x1001090a
test esi, esi
jne 0x10011245
lea esi, [esp + 0x21c]
push 4
push 0x4881e20
push esi
call fcn.10003d5d
add esp, 0xc
test eax, eax
je 0x10010933
inc esi
lea eax, [esp + 0x238]
cmp esi, eax
jbe 0x10010911
jmp 0x1001093b
test esi, esi
jne 0x10011245
mov ax, word [0x498d54c]
mov esi, 0x4949
cmp ax, si
je 0x10011207
mov ecx, 0x4d4d
cmp ax, cx
je 0x10011207
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4881e3c]
jne 0x10010a15
lea eax, [esp + 0x222]
mov eax, dword [eax]
cmp eax, dword [0x4881e44]
jne 0x10010a15
push 0
push 4
push dword [0x498d554]
call fcn.10034c80
call fcn.1000f740
movzx eax, ax
add eax, 4
push 0
push eax
push dword [0x498d554]
mov dword [0x498d194], eax
call fcn.10034c80
mov edx, dword [0x498d554]
add esp, 0x18
cmp edx, 0x3ec
jne 0x100109ec
cmp dword [0x494ab58], 0
je 0x100109ec
mov eax, dword [0x494aad4]
mov ecx, dword [0x494aad0]
sub eax, ecx
cmp eax, 1
jl 0x100109ec
movzx eax, byte [ecx]
inc ecx
mov dword [0x494aad0], ecx
jmp 0x100109f5
push edx
call fcn.10033e00
add esp, 4
cmp eax, 0xff
je 0x10010a06
push 0xc
call fcn.10021bb0
add esp, 4
mov dword [0x498d190], 0
jmp 0x1001126e
mov edx, 0x4881e6c
lea ecx, [esp + 0x235]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10010ae1
movzx eax, word [ecx + 4]
cmp ax, word [edx + 4]
jne 0x10010ae1
movzx eax, byte [ecx + 6]
cmp al, byte [edx + 6]
jne 0x10010ae1
mov eax, dword [0x4881e84]
mov dword [0x498d280], eax
movzx eax, word [0x4881e88]
mov word [0x498d284], ax
mov al, byte [0x4881e8a]
mov byte [0x498d286], al
mov eax, dword [0x4881e8c]
mov dword [0x498d240], eax
mov eax, dword [0x4881e90]
push 0
mov dword [0x498d244], eax
movzx eax, word [0x4881e94]
push 0x21
push dword [0x498d554]
mov word [0x498d248], ax
call fcn.10034c80
push 1
call fcn.1000f820
push 0
push 0x3c
push dword [0x498d554]
call fcn.10034c80
add esp, 0x1c
xor esi, esi
call fcn.1000f7a0
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
test eax, eax
jns 0x10010ac9
fadd dword [0x4880e2c]
mov eax, esi
sar eax, 1
xor eax, esi
inc esi
fstp dword [eax*4 + 0x496af20]
cmp esi, 4
jl 0x10010ab2
jmp 0x1001126e
mov ecx, 0x4881ebc
lea eax, [esp + 0x21c]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10010b10
test dl, dl
je 0x10010b0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10010b10
add eax, 2
add ecx, 2
test dl, dl
jne 0x10010af0
xor eax, eax
jmp 0x10010b15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10010b64
mov eax, dword [0x4881ec0]
mov dword [0x498d280], eax
mov eax, dword [0x4881ec4]
mov dword [0x498d284], eax
mov al, byte [0x4881ec8]
mov byte [0x498d288], al
mov eax, dword [0x4881ecc]
mov dword [0x498d240], eax
mov eax, dword [0x4881ed0]
mov dword [0x498d244], eax
mov eax, dword [0x4881ed4]
mov dword [0x498d248], eax
mov eax, dword [0x4881ed8]
mov dword [0x498d24c], eax
jmp 0x1001126e
mov ecx, 0x4881edc
lea eax, [esp + 0x21c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10010b90
test dl, dl
je 0x10010b8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10010b90
add eax, 2
add ecx, 2
test dl, dl
jne 0x10010b70
xor eax, eax
jmp 0x10010b95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10010bea
mov eax, dword [0x4881ee4]
mov dword [0x498d280], eax
movzx eax, word [0x4881ee8]
mov word [0x498d284], ax
mov eax, dword [0x4881eec]
mov dword [0x498d240], eax
mov eax, dword [0x4881ef0]
mov dword [0x498d244], eax
mov eax, dword [0x4881ef4]
mov dword [0x498d248], eax
movzx eax, word [0x4881ef8]
mov word [0x498d24c], ax
mov dword [0x494ae94], 0x48665b0
jmp 0x1001126e
mov ecx, 0x4881efc
lea eax, [esp + 0x21c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10010c16
test dl, dl
je 0x10010c12
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10010c16
add eax, 2
add ecx, 2
test dl, dl
jne 0x10010bf6
xor eax, eax
jmp 0x10010c1b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10010c70
mov eax, dword [0x4881f04]
mov dword [0x498d280], eax
movzx eax, word [0x4881f08]
mov word [0x498d284], ax
mov eax, dword [0x4881f0c]
mov dword [0x498d240], eax
mov eax, dword [0x4881f10]
mov dword [0x498d244], eax
mov eax, dword [0x4881f14]
mov dword [0x498d248], eax
movzx eax, word [0x4881f18]
mov word [0x498d24c], ax
mov dword [0x494ae94], 0x4855d70
jmp 0x1001126e
lea ecx, [esp + 0x21c]
mov eax, dword [ecx]
cmp eax, dword [0x4881f24]
jne 0x10010d7a
mov eax, dword [ecx + 4]
cmp eax, dword [0x4881f28]
jne 0x10010d7a
push 0
push 0x54
push dword [0x498d554]
call fcn.10034c80
call fcn.1000f7a0
mov dword [0x498d190], eax
call fcn.1000f7a0
push 0
push 0x5c
push dword [0x498d554]
mov dword [0x498d174], eax
call fcn.10034c80
call fcn.1000f7a0
push eax
call fcn.1001c5c0
add esp, 0x1c
cmp dword [0x498d190], 0x78
jle 0x10010d20
push 0
push 0x78
push dword [0x498d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f7a0
mov ecx, dword [0x498d134]
xor edx, edx
test eax, eax
setne dl
add ecx, edx
mov dword [0x498d134], ecx
cmp ecx, 2
jne 0x10010d20
cmp dword [0x48864b8], 0
je 0x10010d20
push eax
call fcn.1001c5c0
add esp, 4
xor eax, eax
mov dword [0x494ae94], 0x486bf40
cmp eax, dword [0x48864b8]
push 0
sbb ecx, ecx
neg ecx
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax*4 + 0x64]
push eax
push dword [0x498d554]
call fcn.10034c80
call fcn.1000f7a0
push eax
mov dword [0x498d194], eax
call fcn.10021bb0
mov eax, dword [0x498d190]
add eax, 0xc
push eax
call fcn.10021bb0
add esp, 0x14
jmp 0x10011269
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4881f3c]
jne 0x10010da7
push 0
push 0
push dword [0x498d554]
call fcn.10034c80
add esp, 0xc
call fcn.10020fd0
jmp 0x1001126e
mov edx, 0x4881f50
lea ecx, [esp + 0x220]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10010df1
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jne 0x10010df1
movzx eax, byte [ecx + 8]
cmp al, byte [edx + 8]
jne 0x10010df1
push 0
push 0
push dword [0x498d554]
call fcn.10034c80
push ebx
call fcn.10020c30
add esp, 0x10
mov dword [0x498d134], 0
jmp 0x1001126e
mov edx, 0x4881f78
lea ecx, [esp + 0x21c]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10010ea4
movzx eax, word [ecx + 4]
cmp ax, word [edx + 4]
jne 0x10010ea4
push 0
push 6
push dword [0x498d554]
call fcn.10034c80
push dword [0x498d554]
push 8
push 1
push 0x498d280
call fcn.10034540
push dword [0x498d554]
push 8
push 1
push 0x498d240
call fcn.10034540
push dword [0x498d554]
push 0x10
push 1
push 0x498d200
call fcn.10034540
add esp, 0x3c
call fcn.1000f740
movzx eax, ax
mov dword [0x498d194], eax
call fcn.1000f740
call fcn.1000f740
mov word [0x498d088], ax
call fcn.1000f740
mov word [0x498d08a], ax
mov dword [0x494ae94], 0x4859040
mov dword [0x498d090], 0x61616161
jmp 0x1001126e
lea ecx, [esp + 0x21c]
mov eax, dword [ecx]
cmp eax, dword [0x4881f90]
jne 0x10010f9e
mov eax, dword [ecx + 4]
cmp eax, dword [0x4881f94]
jne 0x10010f9e
mov eax, dword [0x4882008]
push 0
mov dword [0x498d280], eax
mov ax, word [0x488200c]
push 0x12c
push dword [0x498d554]
mov word [0x498d284], ax
mov word [0x498d54c], si
call fcn.10034c80
add esp, 0xc
call fcn.1000f7a0
mov dword [0x498d194], eax
call fcn.1000f7a0
mov ebx, eax
call fcn.1000f740
mov word [0x498d084], ax
call fcn.1000f740
movzx esi, word [0x498d084]
mov di, ax
movzx ecx, di
lea eax, [ebx*8]
imul ecx, esi
cdq
mov word [0x498d086], di
idiv ecx
mov ecx, eax
mov dword [0x498d154], eax
sub ecx, 8
je 0x10010f59
sub ecx, 2
jne 0x10010f63
mov dword [0x494ae94], 0x4859040
jmp 0x10010f63
mov dword [0x494ae94], 0x484dc60
imul esi, eax
xor edx, edx
mov eax, ebx
mov dword [0x496af4c], 1
mov ebx, dword [esp + 0x2c]
mov dword [0x498d090], 0x61616161
shr esi, 3
div esi
sub ax, di
mov word [0x498d082], ax
add ax, di
mov word [0x498d08a], ax
jmp 0x1001126e
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4882020]
jne 0x10011049
push 0
push 0x14
push dword [0x498d554]
mov word [0x498d54c], si
call fcn.10034c80
call fcn.1000f7a0
mov word [0x498d084], ax
call fcn.1000f7a0
mov word [0x498d086], ax
mov eax, dword [0x4882028]
push 0
mov dword [0x498d280], eax
mov al, byte [0x488202c]
push 0x29c
push dword [0x498d554]
mov byte [0x498d284], al
call fcn.10034c80
push dword [0x498d554]
push 0x40
push 1
push 0x498d240
call fcn.10034540
add esp, 0x28
mov dword [0x498d194], 0x1000
mov dword [0x494ae94], 0x4859810
mov dword [0x498d09c], 0x58
mov dword [0x498d090], 0x61616161
jmp 0x1001126e
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4882030]
jne 0x10011101
push 0
push 0x800
push dword [0x498d554]
mov word [0x498d54c], si
call fcn.10034c80
push dword [0x498d554]
push 0x29
push 1
push 0x498d280
call fcn.10034540
call fcn.1000f740
mov word [0x498d08a], ax
call fcn.1000f740
push 1
push 0x38
push dword [0x498d554]
mov word [0x498d088], ax
call fcn.10034c80
push dword [0x498d554]
push 0x1e
push 1
push 0x498d240
call fcn.10034540
fld qword [0x4880d68]
add esp, 0x38
mov dword [0x498d194], 0x10000
mov dword [0x494ae94], 0x484a910
push 0x3ff
push 1
sub esp, 0x10
fstp qword [esp + 8]
fldz
fstp qword [esp]
call fcn.1000f310
add esp, 0x18
jmp 0x1001126e
lea eax, [esp + 0x220]
mov eax, dword [eax]
cmp eax, dword [0x4882040]
jne 0x10011169
mov eax, dword [0x4882048]
mov dword [0x498d280], eax
mov eax, dword [0x488204c]
mov dword [0x498d240], eax
call fcn.10020d90
fld qword [0x4880d70]
push 0xfff
push 1
sub esp, 0x10
mov dword [0x494ae94], 0x4858060
fstp qword [esp + 8]
fld qword [0x4880c88]
fstp qword [esp]
call fcn.1000f310
add esp, 0x18
mov dword [0x498d090], 0x49494949
jmp 0x1001126e
mov edx, 0x4882054
lea ecx, [esp + 0x21c]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10011196
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jne 0x10011196
movzx eax, byte [ecx + 8]
cmp al, byte [edx + 8]
jne 0x10011196
call fcn.10021300
jmp 0x1001126e
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4882060]
jne 0x100111b1
call fcn.10021660
jmp 0x1001126e
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4882068]
jne 0x100111d1
push 0
call fcn.1001fd70
add esp, 4
jmp 0x1001126e
lea eax, [esp + 0x21c]
mov eax, dword [eax]
cmp eax, dword [0x4882070]
jne 0x100111ec
call fcn.1001bf80
jmp 0x1001126e
mov ecx, 0x488207c
lea eax, [esp + 0x21c]
mov ax, word [eax]
cmp ax, word [ecx]
jne 0x1001126e
call fcn.1001b6f0
jmp 0x1001126e
lea ecx, [esp + 0x222]
mov eax, dword [ecx]
cmp eax, dword [0x4881e28]
jne 0x1001125b
mov eax, dword [ecx + 4]
cmp eax, dword [0x4881e2c]
jne 0x1001125b
mov eax, ebx
mov dword [0x498d194], edi
push 0
sub eax, edi
push eax
push edi
call fcn.1001ab80
add esp, 0xc
mov dword [0x494ae94], 0x484a540
jmp 0x1001126e
lea eax, [esp + 0x21c]
sub esi, eax
push esi
call fcn.10020700
add esp, 4
test esi, esi
je 0x1001126e
push 0
call fcn.10021bb0
add esp, 4
test eax, eax
je 0x1001126e
call fcn.10008d30
cmp byte [0x498d280], 0
jne 0x100114a8
mov edx, 0xfffffff6
sub edx, 0x487a7c0
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], esi
cmp ebx, dword [esi + 0x487a7b0]
jne 0x1001148c
lea ecx, [esi + 0x487a7c0]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx + 0x498d289], al
test al, al
jne 0x100112a2
lea ecx, [esi + 0x487a7ca]
jmp 0x100112c0
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx + 0x498d23f], al
test al, al
jne 0x100112c0
mov eax, dword [0x494aac0]
mov dword [eax + 0x7a0], 2
mov dl, byte [esi + 0x487a7bf]
movzx ecx, dl
mov eax, ecx
and ecx, 2
shr eax, 2
mov dword [0x498d098], eax
mov dword [0x498d13c], ecx
test dl, 1
je 0x10011305
call fcn.1001bd40
movzx eax, word [esi + 0x487a7de]
mov bx, word [esi + 0x487a7b4]
movzx edx, byte [esi + 0x487a7b8]
mov cx, bx
mov di, word [esi + 0x487a7b6]
movzx esi, byte [esi + 0x487a7b9]
mov dword [0x498d194], eax
mov eax, dword [esp + 0x30]
mov word [0x498d082], si
mov word [0x498d080], dx
mov word [0x498d088], bx
movzx eax, byte [eax + 0x487a7ba]
sub cx, ax
mov word [0x498d08a], di
mov eax, dword [esp + 0x30]
sub cx, dx
mov word [0x498d084], cx
mov cx, di
movzx eax, byte [eax + 0x487a7bb]
sub cx, ax
sub cx, si
mov esi, dword [esp + 0x30]
mov word [0x498d086], cx
movzx eax, byte [esi + 0x487a7bd]
imul eax, eax, 0x1010101
movzx edx, word [esi + 0x487a7de]
mov ecx, eax
mov dword [0x498d090], eax
shr ecx, 1
and ecx, eax
mov eax, 4
and ecx, 0x5555
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
movzx ecx, bx
mov ebx, dword [esp + 0x2c]
mov dword [0x498d08c], eax
movzx eax, byte [esi + 0x487a7bc]
mov dword [esp + 0x30], eax
mov dword [0x498d09c], eax
movzx eax, di
imul ecx, eax
mov eax, ebx
sub eax, edx
shl eax, 3
cdq
idiv ecx
mov edi, eax
mov dword [0x498d154], edi
lea eax, [edi - 6]
cmp eax, 0xa
ja 0x1001146e
movzx ecx, byte [eax + 0x4854bc0]
jmp dword [ecx*4 + 0x4854bac]
mov cl, byte [esi + 0x487a7be]
mov eax, 1
mov edx, eax
shl edx, cl
mov ecx, edi
shl eax, cl
sub eax, edx
mov edx, dword [esp + 0x28]
mov dword [0x498d148], eax
add esi, 0x30
sub edx, 0x30
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], edx
cmp esi, 0x12f0
jb 0x10011290
jmp 0x100114b0
mov dword [esp + 0x2c], 0
cmp byte [0x498d280], 0
jne 0x10011608
push dword [esp + 0x34]
push 0
call fcn.100218d0
add esp, 8
cmp byte [0x498d280], 0
jne 0x10011608
push 0
call fcn.1001cbe0
push 2
push 0x48820ec
push 0x498d240
call fcn.100357a0
add esp, 0x10
test eax, eax
je 0x10011513
push 5
push 0x4882114
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x100115fe
push 2
push 0xff9e4800
push dword [0x498d554]
call fcn.10034c80
add esp, 0xc
test eax, eax
jne 0x100115fe
push dword [0x498d554]
lea eax, [esp + 0x220]
push 0x20
push 1
push eax
call fcn.10034540
add esp, 0x10
test eax, eax
je 0x100115fe
mov ecx, 0x4882140
lea eax, [esp + 0x21c]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011580
test dl, dl
je 0x1001157c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011580
add eax, 2
add ecx, 2
test dl, dl
jne 0x10011560
xor eax, eax
jmp 0x10011585
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100115fe
mov eax, dword [0x488214c]
push dword [0x498d554]
mov dword [0x498d280], eax
mov eax, dword [0x4882150]
mov dword [0x498d284], eax
movzx eax, word [0x4882154]
mov word [0x498d288], ax
mov al, byte [0x4882156]
mov byte [0x498d28a], al
call fcn.10034dc0
add esp, 4
mov dword [0x494ae94], 0x4859040
add eax, 0x7fe0
mov dword [0x498d090], 0x16161616
mov dword [0x498d194], eax
movzx eax, word [0x498d088]
mov word [0x498d084], ax
mov eax, 0xa33
mov word [0x498d088], ax
jmp 0x10011608
mov dword [0x498d134], 0
mov eax, dword [0x494aac0]
cmp dword [eax + 0x7a0], 0
jne 0x10011629
cmp dword [0x498d134], 0
je 0x10011629
mov dword [eax + 0x7a0], 1
xor ebx, ebx
jmp 0x10011630
cmp byte [0x498d280], 0
mov esi, 0x498d280
mov edi, dword [ebx + 0x4881c18]
je 0x1001168d
mov ecx, edi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10011650
sub ecx, edx
push ecx
push edi
push esi
call fcn.100357e0
add esp, 0xc
test eax, eax
je 0x10011670
inc esi
cmp byte [esi], 0
jne 0x10011644
jmp 0x1001168d
mov ecx, dword [ebx + 0x4881c18]
mov edx, 0x498d280
sub edx, ecx
lea ecx, [ecx]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x10011680
add ebx, 4
cmp ebx, 0x54
jb 0x10011630
mov ecx, 0x4882268
mov eax, 0x498d280
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100116c0
test dl, dl
je 0x100116bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100116c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100116a0
xor eax, eax
jmp 0x100116c5
sbb eax, eax
or eax, 1
test eax, eax
je 0x100116fc
mov ecx, 0x4882274
mov eax, 0x498d280
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100116f3
test dl, dl
je 0x100116ef
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100116f3
add eax, 2
add ecx, 2
test dl, dl
jne 0x100116d3
xor eax, eax
jmp 0x100116f8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10011755
cmp byte [0x498d240], 0
mov esi, 0x498d240
je 0x1001173a
lea ebx, [ebx]
mov ecx, 0x48822b0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10011718
sub ecx, edx
push ecx
push 0x48822b0
push esi
call fcn.100357e0
add esp, 0xc
test eax, eax
je 0x10011752
inc esi
cmp byte [esi], 0
jne 0x10011710
push 0x48822f4
push 0x498d240
call fcn.10035880
mov esi, eax
add esp, 8
test esi, esi
je 0x10011755
mov byte [esi], 0
push 6
push 0x488233c
push 0x498d240
call fcn.100357e0
add esp, 0xc
test eax, eax
jne 0x1001178d
mov eax, dword [0x4882348]
mov dword [0x498d280], eax
mov ax, word [0x488234c]
mov word [0x498d284], ax
mov al, byte [0x488234e]
mov byte [0x498d286], al
mov ecx, 0x498d280
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10011795
sub ecx, edx
cmp byte [ecx + 0x498d27f], 0x20
lea eax, [ecx + 0x498d27f]
jne 0x100117bb
lea ecx, [ecx]
mov byte [eax], 0
lea eax, [eax - 1]
cmp byte [eax], 0x20
je 0x100117b0
mov ecx, 0x498d240
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100117c3
sub ecx, edx
cmp byte [ecx + 0x498d23f], 0x20
lea eax, [ecx + 0x498d23f]
jne 0x100117eb
jmp 0x100117e0
mov byte [eax], 0
lea eax, [eax - 1]
cmp byte [eax], 0x20
je 0x100117e0
mov esi, 0x498d280
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100117f3
sub esi, ecx
push esi
push 0x498d280
push 0x498d240
call fcn.100357e0
add esp, 0xc
test eax, eax
jne 0x1001183a
mov al, byte [esi + 0x498d240]
inc esi
cmp al, 0x20
jne 0x1001183a
mov eax, 0x40
sub eax, esi
push eax
lea eax, [esi + 0x498d240]
push eax
push 0x498d240
call fcn.10003d05
add esp, 0xc
push 8
push 0x4882448
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x10011863
mov ecx, 0x498d248
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 9], al
test al, al
jne 0x10011857
push 0xf
push 0x488248c
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x1001188c
mov ecx, 0x498d24f
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 0x10], al
test al, al
jne 0x10011880
cmp dword [0x498d134], 0
mov byte [0x498d23f], 0
mov byte [0x498d27f], 0
mov byte [0x498d2bf], 0
mov byte [0x498d1ff], 0
mov byte [0x498d4bf], 0
je 0x1001577a
cmp word [0x498d086], 0
jne 0x100118d2
mov ax, word [0x498d08a]
mov word [0x498d086], ax
cmp word [0x498d084], 0
jne 0x100118e8
mov ax, word [0x498d088]
mov word [0x498d084], ax
mov edi, 2
mov eax, 0xa40
mov esi, 0x1000
lea ebx, [edi + 8]
cmp word [0x498d086], ax
jne 0x10011926
mov eax, 0xf60
cmp word [0x498d084], ax
jne 0x10011961
mov eax, 0xa38
mov word [0x498d086], ax
mov eax, 0xf38
jmp 0x10011a0b
mov eax, 0xc40
cmp word [0x498d086], ax
jne 0x10011961
mov eax, 0x1300
cmp word [0x498d084], ax
jne 0x10011961
mov eax, 0xc34
mov dword [0x498d090], 0x16161616
mov word [0x498d086], ax
mov eax, 0x1250
jmp 0x10011a0b
mov eax, 0x1100
cmp word [0x498d084], ax
jne 0x10011a6b
mov ecx, 0x48825cc
mov eax, 0x498d240
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001199f
test dl, dl
je 0x1001199b
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001199f
add eax, 2
add ecx, edi
test dl, dl
jne 0x10011980
xor eax, eax
jmp 0x100119a4
sbb eax, eax
or eax, 1
test eax, eax
je 0x100119da
mov ecx, 0x48825d4
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100119d1
test dl, dl
je 0x100119cd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100119d1
add eax, 2
add ecx, edi
test dl, dl
jne 0x100119b2
xor eax, eax
jmp 0x100119d6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100119ef
mov eax, 0x10d5
mov word [0x498d084], ax
mov dword [0x498d090], 0x16161616
mov eax, 0xbc6
cmp word [0x498d086], ax
jne 0x10011a11
cmp word [0x498d084], si
jne 0x10011a11
mov eax, 0xfae
mov word [0x498d084], ax
cmp dword [0x498d130], 0
je 0x10011c51
cmp dword [0x498d090], 0xffffffff
jne 0x10011bfa
mov dword [0x498d090], 0
mov eax, dword [0x498d158]
mov dword [0x498d08c], eax
mov eax, dword [0x498d150]
cmp eax, 7
ja 0x10011c2c
je 0x10011c1d
cmp eax, 1
ja 0x10011c33
mov dword [0x494ae94], 0x4859630
jmp 0x1001548c
mov eax, 0x1360
cmp word [0x498d084], ax
jb 0x10011aa2
push 3
push 0x4882614
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x10011aa2
mov word [0x498d080], bx
mov eax, 0x1356
jmp 0x100119df
mov eax, 0x1280
cmp word [0x498d084], ax
jne 0x10011b12
mov ecx, 0x488265c
mov eax, 0x498d240
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011adf
test dl, dl
je 0x10011adb
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011adf
add eax, 2
add ecx, edi
test dl, dl
jne 0x10011ac0
xor eax, eax
jmp 0x10011ae4
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100119ef
mov eax, 0xc32
mov dword [0x498d090], 0x16161616
mov word [0x498d086], ax
mov eax, 0x124c
mov word [0x498d082], di
jmp 0x10011a0b
mov eax, 0x17c0
cmp word [0x498d084], ax
jne 0x10011b77
mov ecx, 0x48826ac
mov eax, 0x498d240
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011b4f
test dl, dl
je 0x10011b4b
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011b4f
add eax, 2
add ecx, edi
test dl, dl
jne 0x10011b30
xor eax, eax
jmp 0x10011b54
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100119ef
mov eax, 4
mov word [0x498d080], ax
mov eax, 0x1798
mov word [0x498d084], ax
jmp 0x100119ef
mov eax, 0x1d00
cmp word [0x498d084], ax
jne 0x100119ef
mov ecx, 0x4882784
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011bb2
test dl, dl
je 0x10011bae
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011bb2
add eax, 2
add ecx, edi
test dl, dl
jne 0x10011b93
xor eax, eax
jmp 0x10011bb7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100119ef
mov eax, 0x157e
mov dword [0x498d090], 0x61616161
mov word [0x498d086], ax
mov eax, 0x1ca0
mov word [0x498d084], ax
mov eax, 0x1d
mov word [0x498d082], ax
mov eax, 0x30
mov word [0x498d080], ax
jmp 0x10011a11
cmp dword [0x498d090], 0
je 0x10011a35
mov eax, dword [0x498d134]
imul eax, dword [0x498d158]
mov dword [0x498d134], eax
jmp 0x10011a3f
mov dword [0x494ae94], 0x4857bc0
jmp 0x1001548c
cmp eax, 0x884c
je 0x10011c42
mov dword [0x494ae94], 0
jmp 0x1001548c
mov dword [0x494ae94], 0x4858060
jmp 0x1001548c
mov ecx, 0x48829d4
mov eax, 0x498d280
jmp 0x10011c60
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011c7f
test dl, dl
je 0x10011c7b
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011c7f
add eax, 2
add ecx, edi
test dl, dl
jne 0x10011c60
xor eax, eax
jmp 0x10011c84
sbb eax, eax
or eax, 1
mov ebx, 8
test eax, eax
jne 0x10011da7
cmp dword [esp + 0x2c], eax
jne 0x10011da7
cmp dword [0x498d154], 0xf
je 0x10011da7
cmp dword [0x494ae94], eax
jne 0x10011cba
mov dword [0x494ae94], 0x4857e90
xor esi, esi
lea esp, [esp]
mov dx, word [0x498d088]
cmp dx, word [esi + 0x4879a80]
jne 0x10011d70
mov di, word [0x498d08a]
cmp di, word [esi + 0x4879a82]
jne 0x10011d70
mov ax, word [esi + 0x4879a84]
sub dx, word [esi + 0x4879a88]
mov cx, word [esi + 0x4879a86]
sub dx, ax
sub di, word [esi + 0x4879a8a]
mov word [0x498d080], ax
sub di, cx
movzx eax, word [esi + 0x4879a8c]
mov dword [0x496af44], eax
movzx eax, word [esi + 0x4879a8e]
neg eax
mov word [0x498d082], cx
mov dword [0x496af4c], eax
movzx eax, word [esi + 0x4879a90]
mov dword [0x496af54], eax
movzx eax, word [esi + 0x4879a92]
neg eax
mov word [0x498d084], dx
mov dword [0x496af5c], eax
movzx eax, word [esi + 0x4879a94]
mov word [0x498d086], di
test ax, ax
je 0x10011d70
imul eax, eax, 0x1010101
mov dword [0x498d090], eax
add esi, 0x16
cmp esi, 0x3b2
jb 0x10011cc0
mov ecx, dword [0x498d178]
mov eax, ecx
or eax, 0x20000
cmp eax, 0x2720000
jne 0x10011dad
mov eax, 0x10
mov word [0x498d080], bx
mov word [0x498d082], ax
jmp 0x10011dad
mov ecx, dword [0x498d178]
mov ebx, 0x4879eca
mov esi, 0x498d240
sub esi, ebx
mov edi, 0x2b
mov edi, edi
movzx eax, word [ebx - 2]
sub eax, 0x80000000
cmp ecx, eax
jne 0x10011e13
push ebx
push 0x4882abc
call fcn.10007d60
add esp, 8
cmp byte [0x498d244], 0x4b
jne 0x10011e0d
mov ecx, 0x498d240
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10011df0
sub ecx, edx
cmp ecx, 8
jne 0x10011e0d
mov ecx, ebx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x10011e00
mov ecx, dword [0x498d178]
sub esi, 0x16
add ebx, 0x16
dec edi
jne 0x10011dc0
mov edx, 0x487a2aa
mov edi, 0x498d240
sub edi, edx
mov esi, 0x3a
lea ecx, [ecx]
movzx eax, word [edx - 2]
cmp ecx, eax
jne 0x10011e53
mov ecx, edx
lea ebx, [ebx]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edi + ecx - 1], al
test al, al
jne 0x10011e40
mov ecx, dword [0x498d178]
sub edi, 0x16
add edx, 0x16
dec esi
jne 0x10011e30
mov ecx, 0x4882b6c
mov eax, 0x498d280
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011e86
test dl, dl
je 0x10011e82
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011e86
add eax, 2
add ecx, 2
test dl, dl
jne 0x10011e66
xor eax, eax
jmp 0x10011e8b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10011ec1
cmp dword [0x494ae94], eax
jne 0x10011ea1
mov dword [0x494ae94], 0x4859810
cmp byte [0x498d240], 0x45
jne 0x10011ec1
xor eax, eax
cmp dword [0x498d194], eax
sete al
shl eax, 2
or eax, 2
or dword [0x498d09c], eax
mov ecx, 0x4882bac
mov eax, 0x498d240
jmp 0x10011ed0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011ef0
test dl, dl
je 0x10011eec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011ef0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10011ed0
xor eax, eax
jmp 0x10011ef5
sbb eax, eax
or eax, 1
mov edi, 0x1e0
test eax, eax
jne 0x10011f4e
push 0x1400
push 0xf00
push 0x10
push 0x10
call fcn.1000ec60
fcomp qword [0x4880d80]
fnstsw ax
add esp, 0x10
test ah, 5
jp 0x10011f4e
xor eax, eax
mov word [0x498d086], di
mov word [0x498d082], ax
mov eax, dword [0x4882bc4]
mov dword [0x498d240], eax
mov al, byte [0x4882bc8]
mov dword [0x498d090], 0
mov byte [0x498d244], al
mov ecx, 0x4882bcc
mov eax, 0x498d280
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10011f78
test dl, dl
je 0x10011f74
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10011f78
add eax, 2
add ecx, 2
test dl, dl
jne 0x10011f58
xor eax, eax
jmp 0x10011f7d
sbb eax, eax
or eax, 1
mov esi, 0xf30
mov edx, 0x80
test eax, eax
jne 0x10011fa6
cmp word [0x498d088], si
jbe 0x10011fa6
mov ecx, dword [0x498d154]
mov eax, edx
lea ecx, [ecx - 0xc]
shl eax, cl
mov dword [0x498d14c], eax
cmp dword [0x498d12c], 0
je 0x10012003
movzx ecx, word [0x498d086]
movzx eax, word [0x498d084]
add ecx, ecx
cmp ecx, eax
jge 0x10011fcf
fld qword [0x48791e8]
fstp qword [0x496afc0]
mov ax, word [0x498d086]
cmp ax, word [0x498d084]
jbe 0x10011fea
fld qword [0x4879140]
fstp qword [0x496afc0]
push 0
mov dword [0x498d090], 0
call fcn.1002a510
add esp, 4
jmp 0x10015404
mov ecx, 0x4882c00
mov eax, 0x498d280
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012030
test dl, dl
je 0x1001202c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012030
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012010
xor eax, eax
jmp 0x10012035
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001213f
cmp dword [0x498d154], 0xf
jne 0x1001213f
movzx eax, word [0x498d084]
cmp eax, 0xd10
je 0x10012061
cmp eax, 0xf20
je 0x1001206d
jmp 0x10012079
mov eax, 0xffbe
add word [0x498d084], ax
mov eax, 0xfffa
add word [0x498d084], ax
mov di, word [0x498d084]
cmp word [0x498d086], di
jbe 0x100120d9
mov ax, word [0x498d086]
add ax, di
mov word [0x498d086], ax
sub ax, di
mov di, ax
sub word [0x498d086], di
mov word [0x498d084], di
mov di, word [0x498d08a]
add di, word [0x498d088]
mov word [0x498d08a], di
sub di, word [0x498d088]
mov dx, di
sub word [0x498d08a], dx
mov word [0x498d088], dx
mov eax, 0x1c20
cmp word [0x498d084], ax
jne 0x10012112
cmp word [0x498d086], si
jne 0x10012112
mov eax, 0x1950
mov word [0x498d084], ax
mov word [0x498d088], ax
mov eax, 0x10e0
mov word [0x498d086], ax
mov word [0x498d08a], ax
mov dword [0x498d090], 0
mov dword [0x498d08c], 3
mov dword [0x498d158], 3
mov dword [0x494ae94], 0x484ab70
jmp 0x10015404
mov ecx, 0x4882c60
mov eax, 0x498d240
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012170
test dl, dl
je 0x1001216c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012170
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012150
xor eax, eax
jmp 0x10012175
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100121b3
mov eax, 0x265
mov dword [0x498d090], 0xe1e4e1e4
mov word [0x498d086], ax
mov eax, 0x356
mov word [0x498d084], ax
mov eax, 0x380
mov word [0x498d088], ax
mov dword [0x494ae94], 0x484a310
jmp 0x100153fa
mov ecx, 0x4882c88
mov eax, 0x498d240
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100121e0
test dl, dl
je 0x100121dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100121e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100121c0
xor eax, eax
jmp 0x100121e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x100153a5
mov ecx, 0x4882c98
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012217
test dl, dl
je 0x10012213
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012217
add eax, 2
add ecx, 2
test dl, dl
jne 0x100121f7
xor eax, eax
jmp 0x1001221c
sbb eax, eax
or eax, 1
test eax, eax
je 0x100153a5
mov ecx, 0x4882cb0
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012250
test dl, dl
je 0x1001224c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012250
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012230
xor eax, eax
jmp 0x10012255
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10012283
mov eax, 0x3c8
mov dword [0x498d090], 0x1b4e4b1e
mov word [0x498d086], ax
mov eax, 0x50a
mov word [0x498d084], ax
mov eax, 0x528
jmp 0x100153d6
mov ecx, 0x4882ce0
mov eax, 0x498d240
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100122b0
test dl, dl
je 0x100122ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100122b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012290
xor eax, eax
jmp 0x100122b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100122de
mov eax, 0x400
mov dword [0x498d090], 0x1e4b4e1b
mov word [0x498d086], ax
mov eax, 0x610
mov word [0x498d084], ax
jmp 0x100153dc
mov ecx, 0x4882d28
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012308
test dl, dl
je 0x10012304
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012308
add eax, 2
add ecx, 2
test dl, dl
jne 0x100122e8
xor eax, eax
jmp 0x1001230d
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015396
mov ecx, 0x4882d3c
mov eax, 0x498d240
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012340
test dl, dl
je 0x1001233c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012340
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012320
xor eax, eax
jmp 0x10012345
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015396
mov ecx, 0x4882d7c
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012377
test dl, dl
je 0x10012373
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012377
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012357
xor eax, eax
jmp 0x1001237c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100123a8
call fcn.1000b6f0
test eax, eax
je 0x10015404
mov eax, dword [0x4882d8c]
mov dword [0x498d24a], eax
mov ax, word [0x4882d90]
mov word [0x498d24e], ax
jmp 0x10015404
mov ecx, 0x4882db0
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100123d2
test dl, dl
je 0x100123ce
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100123d2
add eax, 2
add ecx, 2
test dl, dl
jne 0x100123b2
xor eax, eax
jmp 0x100123d7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100123ea
mov dword [0x496af5c], 0xfffffffc
jmp 0x10015404
mov ecx, 0x4882df0
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012414
test dl, dl
je 0x10012410
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012414
add eax, 2
add ecx, 2
test dl, dl
jne 0x100123f4
xor eax, eax
jmp 0x10012419
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10012438
movzx eax, word [0x496b170]
mov dword [0x498d090], 0x61616161
mov dword [0x498d14c], eax
jmp 0x10015404
mov ecx, 0x4882e1c
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012462
test dl, dl
je 0x1001245e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012462
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012442
xor eax, eax
jmp 0x10012467
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10012494
fld dword [0x496af20]
fmul qword [0x4880c98]
fstp dword [0x496af20]
fld dword [0x496af28]
fmul qword [0x4880cc0]
fstp dword [0x496af28]
jmp 0x10015404
mov ecx, 0x4882e20
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100124c0
test dl, dl
je 0x100124bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100124c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100124a0
xor eax, eax
jmp 0x100124c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100124e6
fld qword [0x48791e8]
mov eax, 0xfffc
add word [0x498d084], ax
fstp qword [0x496afc0]
jmp 0x10015404
mov ecx, 0x4882e68
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012510
test dl, dl
je 0x1001250c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012510
add eax, 2
add ecx, 2
test dl, dl
jne 0x100124f0
xor eax, eax
jmp 0x10012515
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015379
mov ecx, 0x4882e78
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012547
test dl, dl
je 0x10012543
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012547
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012527
xor eax, eax
jmp 0x1001254c
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015379
mov ecx, 0x4882e7c
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012580
test dl, dl
je 0x1001257c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012580
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012560
xor eax, eax
jmp 0x10012585
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015379
mov ecx, 0x4882e80
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100125b7
test dl, dl
je 0x100125b3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100125b7
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012597
xor eax, eax
jmp 0x100125bc
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015379
mov ecx, 0x4882e88
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100125f0
test dl, dl
je 0x100125ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100125f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100125d0
xor eax, eax
jmp 0x100125f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015372
mov ecx, 0x4882e8c
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012627
test dl, dl
je 0x10012623
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012627
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012607
xor eax, eax
jmp 0x1001262c
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015372
mov ecx, 0x4882e94
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012660
test dl, dl
je 0x1001265c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012660
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012640
xor eax, eax
jmp 0x10012665
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015372
mov ecx, 0x4882e9c
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012697
test dl, dl
je 0x10012693
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012697
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012677
xor eax, eax
jmp 0x1001269c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100126bc
mov eax, 0xffe4
add word [0x498d084], ax
mov eax, 6
mov word [0x498d080], ax
jmp 0x10015404
mov ecx, 0x4882ea4
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100126e6
test dl, dl
je 0x100126e2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100126e6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100126c6
xor eax, eax
jmp 0x100126eb
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015361
mov ecx, 0x4882eac
mov eax, 0x498d240
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012720
test dl, dl
je 0x1001271c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012720
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012700
xor eax, eax
jmp 0x10012725
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015361
mov ecx, 0x4882edc
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012757
test dl, dl
je 0x10012753
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012757
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012737
xor eax, eax
jmp 0x1001275c
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015350
mov ecx, 0x4882ee4
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012790
test dl, dl
je 0x1001278c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012790
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012770
xor eax, eax
jmp 0x10012795
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015350
mov ecx, 0x4882eec
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100127c7
test dl, dl
je 0x100127c3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100127c7
add eax, 2
add ecx, 2
test dl, dl
jne 0x100127a7
xor eax, eax
jmp 0x100127cc
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015350
mov ecx, 0x4882f08
mov eax, 0x498d240
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012800
test dl, dl
je 0x100127fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012800
add eax, 2
add ecx, 2
test dl, dl
jne 0x100127e0
xor eax, eax
jmp 0x10012805
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001533f
push 2
push 0x4882f10
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001533f
push 4
push 0x4882f14
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001533f
mov ecx, 0x4882f30
mov eax, 0x498d240
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012870
test dl, dl
je 0x1001286c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012870
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012850
xor eax, eax
jmp 0x10012875
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015323
mov ecx, 0x4882f34
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100128a7
test dl, dl
je 0x100128a3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100128a7
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012887
xor eax, eax
jmp 0x100128ac
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015323
push 3
push 0x4882f5c
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x10015312
push 3
push 0x4882f60
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x10015312
push 3
push 0x4882f64
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x10015312
mov ecx, 0x4882f78
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012932
test dl, dl
je 0x1001292e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012932
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012912
xor eax, eax
jmp 0x10012937
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10012969
cmp dword [0x498d09c], eax
je 0x10015404
mov di, word [0x498d084]
add di, 3
mov word [0x498d084], di
add di, 3
mov word [0x498d088], di
jmp 0x10015404
mov ecx, 0x4882fac
mov eax, 0x498d240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012993
test dl, dl
je 0x1001298f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012993
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012973
xor eax, eax
jmp 0x10012998
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100129c2
mov eax, 1
mov dword [0x498d090], 0x94949494
mov word [0x498d080], ax
mov eax, 0xfffc
add word [0x498d084], ax
jmp 0x10015404
push 3
push 0x4882fc4
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x100129f6
mov eax, 6
mov word [0x498d080], ax
mov eax, 0xfff2
add word [0x498d084], ax
jmp 0x10015404
push 3
push 0x4882fd0
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x10012a30
mov eax, 0xcc0
cmp word [0x498d084], ax
jne 0x10014579
mov eax, 0xca0
mov word [0x498d084], ax
jmp 0x10015404
push 4
push 0x4883014
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x10012a59
mov eax, 0xffe0
add word [0x498d084], ax
jmp 0x10015404
push 9
push 0x488305c
push 0x498d240
call fcn.100357a0
add esp, 0xc
mov ebx, 0xfc0
test eax, eax
jne 0x10012ac6
cmp word [0x498d088], bx
je 0x10012ac6
cmp byte [0x498d249], 0x37
mov dword [0x498d09c], 0x18
mov dword [0x498d090], 0x94949494
jne 0x10015404
fld dword [0x498d1b4]
fcomp qword [0x4880dc0]
fnstsw ax
test ah, 1
jne 0x10015404
mov dword [0x498d14c], 0xff
jmp 0x10015404
push 2
push 0x48830b8
push 0x498d240
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x10012aef
mov eax, 0xfffe
add word [0x498d086], ax
jmp 0x10015404
mov eax, dword [esp + 0x2c]
cmp eax, 0x182004
jne 0x10012b2d
push 3
call fcn.1002a510
fld dword [0x4880c18]
add esp, 4
fstp dword [0x496af10]
fld dword [0x4880bf4]
fstp dword [0x496af14]
fld dword [0x4880bf8]
fstp dword [0x496af1c]
jmp 0x10015404
cmp eax, 0x308040
jne 0x10012b5b
fld dword [0x496af20]
fld qword [0x4880d38]
fmul st(1), st(0)
fxch st(1)
fstp dword [0x496af20]
fmul dword [0x496af28]
fstp dword [0x496af28]
jmp 0x10015404
cmp eax, 0x48d000
jne 0x10012c0a
mov eax, dword [0x498d1a0]
or eax, dword [0x498d1a4]
jne 0x10012b90
call fcn.10019440
test eax, eax
je 0x10012b90
mov ecx, 0x4883158
mov eax, 0x498d240
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012bc0
cmp eax, 0x2ce000
jne 0x10012ca2
mov eax, dword [0x498d1a0]
or eax, dword [0x498d1a4]
jne 0x10012c41
cmp eax, 0x48e000
jne 0x10012da6
mov eax, 0xfff8
add word [0x498d084], ax
jmp 0x10015404
mov eax, 0xffff
add word [0x498d084], ax
jmp 0x10015404
mov eax, 0xffcc
add word [0x498d084], ax
mov eax, 2
mov word [0x498d080], ax
jmp 0x10015404
mov eax, 0xffd2
add word [0x498d084], ax
jmp 0x10015404
mov eax, 0xffd4
add word [0x498d084], ax
jmp 0x10015404
mov eax, 0xffd6
add word [0x498d084], ax
jmp 0x10015404
mov eax, 0xfffc
jmp 0x10015328
mov eax, 0xfffd
add word [0x498d086], ax
mov eax, 0xfffc
add word [0x498d084], ax
jmp 0x10015404
mov dword [0x498d090], 0xb4b4b4b4
jmp 0x100153fa
fld qword [0x4880ce0]
mov eax, 0x305
mov word [0x498d086], ax
mov eax, 0x3c0
mov word [0x498d084], ax
mov eax, 0x3e0
fstp qword [0x496afc0]
mov dword [0x498d090], 0x1e4e1e4e
mov word [0x498d088], ax
mov dword [0x498d154], 0xa
mov dword [0x494ae94], 0x4859810
mov dword [0x498d09c], 0x28
mov dword [0x498d08c], 4
cmp byte [0x498d240], 0
jne 0x1001542f
movzx eax, word [0x498d086]
push eax
movzx eax, word [0x498d084]
push eax
push 0x4884eac
push 0x498d240
call 0x10039040
add esp, 0x10
cmp dword [0x498d090], 0xffffffff
jne 0x10015442
mov dword [0x498d090], 0x94949494
mov eax, dword [0x498d190]
test eax, eax
je 0x1001548c
cmp word [0x498d074], 0
jne 0x1001548c
push 0
push eax
push dword [0x498d554]
call fcn.10034c80
lea eax, [esp + 0x44]
push 1
push eax
call fcn.10018390
add esp, 0x14
test eax, eax
je 0x1001548c
movzx eax, word [esp + 0x44]
mov word [0x498d076], ax
movzx eax, word [esp + 0x40]
mov word [0x498d074], ax
cmp dword [0x48864ec], 0
jne 0x100154a2
cmp dword [0x498d130], 0
jne 0x100154a2
xor eax, eax
jmp 0x100154a7
mov eax, 1
test dword [0x48848e8], eax
je 0x100154dc
fld dword [0x4880ba0]
fcomp dword [0x496aee0]
fnstsw ax
test ah, 5
jp 0x100154dc
mov ecx, 0xc
mov esi, 0x496aee0
mov edi, 0x496aea0
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov dword [0x498d140], eax
jmp 0x100154fc
mov eax, dword [0x498d140]
test eax, eax
je 0x100154fc
push 0x498d240
push 0x498d280
call fcn.10007d60
mov eax, dword [0x498d140]
add esp, 8
cmp dword [0x494ae94], 0x4855d70
jne 0x1001551e
test eax, eax
je 0x1001551e
push 0x4884f4c
push 0x4884f70
call fcn.10007d60
add esp, 8
cmp word [0x498d078], 0
je 0x10015591
mov esi, dword [0x498d160]
xor eax, eax
mov dx, word [0x498d084]
test esi, esi
mov di, word [0x498d086]
sete al
fld1
mov cx, ax
shr dx, cl
mov cx, si
mov al, dl
mov word [0x498d078], dx
and al, 1
movzx eax, al
neg eax
fstp qword [0x496afc0]
sbb eax, eax
shr di, cl
and eax, 0x4b4b4b4b
add di, dx
add eax, 0x49494949
mov word [0x498d084], di
dec di
mov dword [0x498d090], eax
mov word [0x498d086], di
jmp 0x100155bd
mov ax, word [0x498d086]
cmp word [0x498d08a], ax
jae 0x100155a6
mov word [0x498d08a], ax
mov di, word [0x498d084]
cmp word [0x498d088], di
jae 0x100155bd
mov word [0x498d088], di
cmp dword [0x498d154], 0
jne 0x100155d0
mov dword [0x498d154], 0xc
cmp dword [0x498d148], 0
jne 0x100155ec
mov ecx, dword [0x498d154]
mov eax, 1
shl eax, cl
dec eax
mov dword [0x498d148], eax
cmp dword [0x494ae94], 0
je 0x10015624
cmp word [0x498d086], 0x16
jb 0x10015624
cmp word [0x498d084], 0x16
jb 0x10015624
cmp dword [0x498d154], 0x10
ja 0x10015624
cmp dword [0x498d158], 6
ja 0x10015624
cmp dword [0x498d08c], 4
jbe 0x1001562e
mov dword [0x498d134], 0
cmp dword [0x494ae94], 0x4858060
jne 0x10015661
push 0x488502c
push dword [0x498d548]
push 0x488504c
push 0x3ea
call fcn.100341f0
add esp, 0x10
mov dword [0x498d134], 0
mov eax, dword [0x494ae94]
cmp eax, 0x4858060
je 0x10015674
cmp eax, 0x4858060
jne 0x1001569b
push 0x4885104
push dword [0x498d548]
push 0x4885120
push 0x3ea
call fcn.100341f0
add esp, 0x10
mov dword [0x498d134], 0
cmp byte [0x498d4c0], 0
jne 0x100156cd
cmp dword [0x498d08c], 3
mov ecx, 0x4885174
je 0x100156b7
mov ecx, 0x4885194
mov edx, 0x498d4c0
sub edx, ecx
mov edi, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x100156c0
cmp word [0x498d08a], 0
jne 0x100156e3
mov ax, word [0x498d086]
mov word [0x498d08a], ax
cmp word [0x498d088], 0
jne 0x100156f9
mov ax, word [0x498d084]
mov word [0x498d088], ax
xor eax, eax
cmp dword [0x498d08c], eax
jbe 0x10015741
mov ecx, dword [0x494aac0]
lea esp, [esp]
fld dword [eax*4 + 0x496aea0]
fmul qword [ecx + 0x750]
fstp dword [eax*4 + 0x496aea0]
fld dword [eax*4 + 0x496aec0]
fmul qword [ecx + 0x758]
fstp dword [eax*4 + 0x496aec0]
inc eax
cmp eax, dword [0x498d08c]
jb 0x10015710
mov edx, dword [0x498d090]
cmp edx, 0x3e7
jbe 0x1001577a
cmp dword [0x498d08c], 3
jne 0x1001577a
mov ecx, edx
mov eax, edx
and ecx, 0xe2222222
shr eax, 2
shl ecx, 2
and eax, 0x22222222
or ecx, eax
lea eax, [edx + edx]
and ecx, eax
or dword [0x498d090], ecx
cmp dword [0x498d098], 0xffffffff
jne 0x10015797
mov ecx, dword [0x498d094]
lea eax, [ecx + 1]
neg eax
sbb eax, eax
and eax, ecx
mov dword [0x498d098], eax
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret