Function at 0x41151c
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov byte [ebp - 0x44], 0x9c
movsx eax, byte [0x4164f4]
add eax, dword [0x4164f8]
mov cl, byte [0x4164f5]
add cl, al
mov byte [0x4164f5], cl
mov byte [ebp - 0x1c], 0x2f
movsx edx, byte [0x416505]
movsx eax, byte [0x4164dc]
imul eax, eax, 0xfffffcca
sub edx, eax
mov dword [0x4164e8], edx
mov byte [ebp - 0x4c], 0xa9
mov ecx, dword [0x4164e4]
imul ecx, dword [0x416500]
mov dl, byte [0x4164fd]
add dl, cl
mov byte [0x4164fd], dl
mov dword [ebp - 4], 0xffffff6e
mov eax, dword [0x416500]
imul eax, eax, 0xffffff42
mov ecx, dword [0x4164f0]
sub ecx, eax
mov dword [0x4164f0], ecx
mov byte [ebp - 0x14], 0x3f
movsx edx, byte [0x4164ec]
mov eax, dword [0x4164e0]
imul eax, edx
mov cl, byte [0x416504]
add cl, al
mov byte [0x416504], cl
mov dword [ebp - 0x10], 0x3cb
mov edx, dword [0x4164f8]
add edx, dword [0x416508]
movsx eax, byte [0x416506]
add edx, eax
mov ecx, dword [0x416508]
sub ecx, edx
mov dword [0x416508], ecx
mov dword [ebp - 0x18], 0xfffffee6
movsx edx, byte [0x4164fd]
imul edx, dword [0x4164e0]
mov al, byte [0x4164ec]
add al, dl
mov byte [0x4164ec], al
mov dword [ebp - 0x24], 0xfffffce3
movsx ecx, byte [0x4164f4]
add ecx, 0x31f
movsx edx, byte [0x4164f5]
sub ecx, edx
mov al, byte [0x416507]
sub al, cl
mov byte [0x416507], al
mov byte [ebp - 0xc], 0x17
movsx ecx, byte [0x416504]
movsx edx, byte [0x4164ec]
sub ecx, edx
mov dword [0x4164f8], ecx
mov dword [ebp - 0x2c], 0xffffff56
movsx eax, byte [0x4164f4]
imul eax, eax, 0xffffff6b
imul eax, dword [0x4164f8]
mov cl, byte [0x416505]
add cl, al
mov byte [0x416505], cl
movsx edx, byte [ebp - 0x14]
mov eax, dword [ebp - 4]
imul eax, edx
mov byte [ebp - 0x4c], al
movsx ecx, byte [ebp - 0x14]
movsx edx, byte [ebp - 0x4c]
imul ecx, edx
mov al, byte [ebp - 0xc]
add al, cl
mov byte [ebp - 0xc], al
movsx ecx, byte [ebp - 0x1c]
mov edx, 0xfffffede
sub edx, ecx
mov al, byte [ebp - 0x44]
add al, dl
mov byte [ebp - 0x44], al
movsx ecx, byte [ebp - 0x14]
movsx edx, byte [ebp - 0x1c]
sub ecx, edx
mov al, byte [ebp - 0x4c]
sub al, cl
mov byte [ebp - 0x4c], al
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 4]
mov dl, byte [ebp - 0x4c]
sub dl, cl
mov byte [ebp - 0x4c], dl
movsx eax, byte [ebp - 0x4c]
movsx ecx, byte [ebp - 0xc]
lea edx, [eax + ecx + 0x319]
mov eax, dword [ebp - 0x10]
sub eax, edx
mov dword [ebp - 0x10], eax
movsx ecx, byte [ebp - 0xc]
imul ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
sub edx, ecx
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
mov cl, byte [ebp - 0xc]
sub cl, 0xd8
mov byte [ebp - 0xc], cl
movsx edx, byte [ebp - 0x4c]
imul edx, edx, 0x3ee
add edx, 0x11e
mov dword [ebp - 4], edx
movsx eax, byte [ebp - 0xc]
mov ecx, 0xfffffa5a
sub ecx, eax
mov edx, dword [ebp - 0x18]
add edx, ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x18]
movsx ecx, byte [ebp - 0xc]
sub eax, ecx
mov byte [ebp - 0x4c], al
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
add eax, edx
mov dword [ebp - 0x2c], eax
movsx ecx, byte [ebp - 0x44]
mov edx, dword [ebp - 0x24]
imul edx, ecx
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x46
movsx ecx, byte [ebp - 0x44]
movsx edx, byte [ebp - 0x44]
sub ecx, edx
movsx eax, byte [ebp - 0xc]
sub ecx, eax
mov dl, byte [ebp - 0x1c]
add dl, cl
mov byte [ebp - 0x1c], dl
movsx eax, byte [ebp - 0xc]
imul eax, eax, 0xffffff7a
add eax, 0xce
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
movsx edx, byte [ebp - 0x14]
imul edx, edx, 0xfffffd21
imul edx, dword [ebp - 4]
mov al, byte [ebp - 0x1c]
sub al, dl
mov byte [ebp - 0x1c], al
movsx ecx, byte [ebp - 0x4c]
movsx edx, byte [ebp - 0xc]
imul ecx, edx
add ecx, 0x104
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
imul eax, eax, 0xfffffe6e
mov cl, byte [ebp - 0xc]
sub cl, al
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x18], eax
movsx ecx, byte [ebp - 0x4c]
movsx edx, byte [ebp - 0xc]
imul ecx, edx
movsx eax, byte [ebp - 0x1c]
add ecx, eax
mov byte [ebp - 0xc], cl
movsx ecx, byte [ebp - 0x14]
mov edx, 0xfffffb61
sub edx, ecx
mov al, byte [ebp - 0xc]
add al, dl
mov byte [ebp - 0xc], al
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
lea eax, [edx + ecx - 0x218]
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
movsx edx, byte [ebp - 0x1c]
movsx eax, byte [ebp - 0x4c]
sub edx, eax
sub edx, 0x2f6
mov byte [ebp - 0x44], dl
mov ecx, dword [ebp - 0x24]
imul ecx, ecx, 0xffffff80
add ecx, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
movsx edx, byte [ebp - 0x14]
imul edx, dword [ebp - 4]
movsx eax, byte [ebp - 0x14]
imul edx, eax
mov ecx, dword [ebp - 0x24]
add ecx, edx
mov dword [ebp - 0x24], ecx
movsx edx, byte [ebp - 0x14]
add edx, 0x82
mov eax, dword [ebp - 0x24]
sub eax, edx
mov dword [ebp - 0x24], eax
movsx ecx, byte [ebp - 0x44]
sub ecx, 0x211
mov dl, byte [ebp - 0x44]
sub dl, cl
mov byte [ebp - 0x44], dl
mov eax, 0xffffff2f
sub eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
movsx edx, byte [ebp - 0x14]
imul edx, dword [ebp - 0x18]
mov byte [ebp - 0x44], dl
movsx eax, byte [ebp - 0x1c]
sub eax, 0x1f1
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x10], ecx
movsx edx, byte [ebp - 0x1c]
imul edx, dword [ebp - 4]
sub edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x2c], eax
movsx ecx, byte [ebp - 0x14]
add ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x24]
mov dl, byte [ebp - 0x44]
add dl, cl
mov byte [ebp - 0x44], dl
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0x30], ecx
movsx edx, byte [ebp - 0x1c]
imul edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], edx
movsx eax, byte [ebp - 0x4c]
add eax, 0x3da
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x18]
imul ecx, ecx, 0xfffffcef
imul ecx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x1c]
sub dl, cl
mov byte [ebp - 0x1c], dl
movsx eax, byte [ebp - 0xc]
imul eax, dword [ebp - 0x10]
mov cl, byte [ebp - 0x4c]
sub cl, al
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x30], edx
movsx eax, byte [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov byte [ebp - 0x1c], al
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x24]
imul edx, edx, 0xfffffd94
mov eax, dword [ebp - 0x10]
sub eax, edx
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov dword [ebp - 0x24], ecx
movsx edx, byte [ebp - 0x14]
mov eax, dword [ebp - 0x18]
imul eax, edx
movsx ecx, byte [ebp - 0x14]
imul eax, ecx
mov edx, dword [ebp - 4]
add edx, eax
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x30]
add eax, 0x78
mov dword [ebp - 0x38], eax
movsx ecx, byte [ebp - 0xc]
imul ecx, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
movsx edx, byte [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
imul eax, edx
movsx ecx, byte [ebp - 0x4c]
add eax, ecx
mov byte [ebp - 0x14], al
mov dword [ebp - 4], 0xfffffe4f
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
mov dword [ebp - 0x40], eax
movsx ecx, byte [ebp - 0xc]
add ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
add edx, ecx
mov dword [ebp - 0x2c], edx
mov al, byte [ebp - 0x4c]
sub al, 0x65
mov byte [ebp - 0x4c], al
movsx ecx, byte [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
sub edx, ecx
sub edx, dword [ebp - 0x2c]
mov al, byte [ebp - 0x4c]
sub al, dl
mov byte [ebp - 0x4c], al
mov ecx, dword [ebp - 0x24]
sub ecx, 0x17
mov edx, dword [ebp - 0x18]
sub edx, ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x40]
add eax, dword [ebp + 8]
mov dword [ebp - 0x40], eax
movsx ecx, byte [ebp - 0x14]
imul ecx, ecx, 0xfffffd28
movsx edx, byte [ebp - 0xc]
sub ecx, edx
mov byte [ebp - 0x14], cl
mov eax, dword [ebp - 0x2c]
sub eax, 0x8b
mov cl, byte [ebp - 0x14]
sub cl, al
mov byte [ebp - 0x14], cl
movsx edx, byte [ebp - 0x4c]
sub edx, dword [ebp - 4]
mov al, byte [ebp - 0x1c]
add al, dl
mov byte [ebp - 0x1c], al
mov ecx, 0x348
sub ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x3c], eax
movsx ecx, byte [ebp - 0xc]
sub ecx, 0x71
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
movsx edx, byte [ebp - 0xc]
sub edx, dword [ebp - 0x2c]
mov byte [ebp - 0x14], dl
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
add edx, 0xb0835
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x24]
mov dl, byte [ebp - 0x14]
sub dl, cl
mov byte [ebp - 0x14], dl
movsx eax, byte [ebp - 0x1c]
imul eax, dword [ebp - 0x2c]
movsx ecx, byte [ebp - 0x1c]
add eax, ecx
mov edx, dword [ebp - 4]
sub edx, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], 0xfffffd1c
movsx eax, byte [ebp - 0x4c]
sub eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x44]
add cl, al
mov byte [ebp - 0x44], cl
movsx edx, byte [ebp - 0x44]
movsx eax, byte [ebp - 0x1c]
add eax, dword [ebp - 0x10]
add eax, edx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x10]
imul eax, eax, 0xfffffe26
mov cl, byte [ebp - 0xc]
add cl, al
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 4]
add edx, 0x325
mov byte [ebp - 0x44], dl
mov al, byte [ebp - 0x1c]
sub al, 0xc8
mov byte [ebp - 0x1c], al
mov dword [ebp - 0x28], 0
jmp 0x411ad4
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x34]
jge 0x412166
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x14]
sub cl, al
mov byte [ebp - 0x14], cl
mov edx, 0xfffffcdd
sub edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x10]
mov byte [ebp - 0xc], dl
movsx eax, byte [ebp - 0x4c]
mov ecx, dword [ebp - 0x2c]
add ecx, eax
mov byte [ebp - 0x4c], cl
movsx edx, byte [ebp - 0x4c]
imul edx, edx, 0xb8
imul edx, edx, 0xa3
mov al, byte [ebp - 0x1c]
add al, dl
mov byte [ebp - 0x1c], al
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx]
mov dword [ebp - 0x48], edx
movsx eax, byte [ebp - 0x44]
sub eax, 0x279
mov ecx, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x18], ecx
movsx edx, byte [ebp - 0x4c]
movsx eax, byte [ebp - 0x44]
lea ecx, [edx + eax + 0x208]
mov edx, dword [ebp - 0x10]
sub edx, ecx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 4]
mov byte [ebp - 0x44], al
mov byte [ebp - 0x44], 0xbb
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x48], ecx
movsx edx, byte [ebp - 0xc]
movsx eax, byte [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
imul ecx, eax
add edx, ecx
mov dword [ebp - 0x24], edx
movsx edx, byte [ebp - 0x1c]
sub edx, 0x34b
mov byte [ebp - 0x4c], dl
movsx eax, byte [ebp - 0x44]
mov ecx, dword [ebp - 0x2c]
imul ecx, eax
imul ecx, ecx, 0xffffff42
mov dl, byte [ebp - 0x4c]
sub dl, cl
mov byte [ebp - 0x4c], dl
mov dword [ebp - 8], 0
movsx eax, byte [ebp - 0x44]
movsx ecx, byte [ebp - 0xc]
add eax, ecx
mov edx, dword [ebp - 0x24]
sub edx, eax
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 4]
add eax, dword [ebp - 0x24]
mov cl, byte [ebp - 0x1c]
sub cl, al
mov byte [ebp - 0x1c], cl
mov edx, dword [ebp - 0x10]
imul edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
movsx ecx, byte [ebp - 0x4c]
imul ecx, ecx, 0xfffffd57
imul ecx, dword [ebp - 4]
mov dl, byte [ebp - 0xc]
sub dl, cl
mov byte [ebp - 0xc], dl
mov eax, dword [ebp - 0x24]
add eax, 0x111
mov cl, byte [ebp - 0x44]
sub cl, al
mov byte [ebp - 0x44], cl
movsx edx, byte [ebp - 0x44]
imul edx, edx, 0xb4
movsx eax, byte [ebp - 0x44]
add edx, eax
mov cl, byte [ebp - 0x44]
sub cl, dl
mov byte [ebp - 0x44], cl
mov edx, 0xfffffc99
sub edx, dword [ebp - 0x18]
add edx, dword [ebp - 4]
mov al, byte [ebp - 0x14]
add al, dl
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x24]
sub ecx, 0x1cc
mov dword [ebp - 0x2c], ecx
movsx edx, byte [ebp - 0xc]
imul edx, edx, 0xfffffc32
movsx eax, byte [ebp - 0x1c]
sub edx, eax
mov byte [ebp - 0x1c], dl
mov cl, byte [ebp - 0xc]
sub cl, 0x72
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 8]
shl edx, 3
mov eax, dword [ebp - 8]
shr eax, 0x1d
or edx, eax
mov dword [ebp - 8], edx
movsx ecx, byte [ebp - 0x44]
imul ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
sub edx, ecx
mov dword [ebp - 0x18], edx
mov al, byte [ebp - 0x14]
add al, 4
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x18]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
add edx, ecx
mov dword [ebp - 4], edx
movsx eax, byte [ebp - 0xc]
imul eax, eax, 0xfffffdb4
add eax, dword [ebp - 4]
mov byte [ebp - 0x4c], al
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
sub edx, ecx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x48]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 8]
xor edx, ecx
mov dword [ebp - 8], edx
movsx eax, byte [ebp - 0x14]
add eax, 0x48e
mov byte [ebp - 0x1c], al
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x10]
sub ecx, 0x30e
mov dl, byte [ebp - 0x1c]
add dl, cl
mov byte [ebp - 0x1c], dl
movsx eax, byte [ebp - 0x4c]
movsx ecx, byte [ebp - 0x14]
imul eax, ecx
mov edx, dword [ebp - 0x10]
add edx, eax
mov byte [ebp - 0x1c], dl
movsx eax, byte [ebp - 0x1c]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax + 0x38f]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
movsx edx, byte [ecx]
test edx, edx
jne 0x411bfe
mov eax, dword [ebp - 4]
add eax, 0x70
mov byte [ebp - 0x4c], al
movsx ecx, byte [ebp - 0xc]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
add edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x18]
imul eax, eax, 0xfffffe33
mov cl, byte [ebp - 0xc]
sub cl, al
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 8]
xor edx, 0x4752e9
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x24]
add eax, 0x154
mov byte [ebp - 0x1c], al
movsx ecx, byte [ebp - 0xc]
imul ecx, ecx, 0xfffffd28
add ecx, 0x1a9
mov edx, dword [ebp - 0x2c]
sub edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x10]
sub eax, 0x343
mov byte [ebp - 0xc], al
movsx ecx, byte [ebp - 0x4c]
add ecx, 0x12f
movsx edx, byte [ebp - 0x44]
sub ecx, edx
mov al, byte [ebp - 0xc]
add al, cl
mov byte [ebp - 0xc], al
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebp - 8]
jne 0x4120cf
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x18]
movsx eax, byte [ebp - 0x1c]
sub edx, eax
mov dword [ebp - 4], edx
movsx ecx, byte [ebp - 0x4c]
mov dl, byte [ebp - 0x4c]
add dl, cl
mov byte [ebp - 0x4c], dl
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x204
mov cl, byte [ebp - 0xc]
sub cl, al
mov byte [ebp - 0xc], cl
movsx edx, byte [ebp - 0x4c]
mov eax, 0xfffffc4d
sub eax, edx
mov cl, byte [ebp - 0x4c]
add cl, al
mov byte [ebp - 0x4c], cl
movsx edx, byte [ebp - 0x1c]
add edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x24]
mov byte [ebp - 0x44], al
movsx ecx, byte [ebp - 0x44]
mov edx, dword [ebp - 4]
imul edx, edx, 0xfffffc80
sub ecx, edx
mov eax, dword [ebp - 4]
sub eax, ecx
mov dword [ebp - 4], eax
movsx ecx, byte [ebp - 0x44]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
sub edx, ecx
mov dword [ebp - 0x10], edx
movsx eax, byte [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
movsx edx, byte [ebp - 0x1c]
add ecx, edx
mov al, byte [ebp - 0xc]
add al, cl
mov byte [ebp - 0xc], al
mov ecx, dword [ebp - 0x18]
imul ecx, ecx, 0xfffffe91
add ecx, 0x1bf
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x20]
add edx, dword [ebp + 8]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 4]
mov byte [ebp - 0x14], al
mov dword [ebp - 0x10], 0x19280
movsx ecx, byte [ebp - 0xc]
mov edx, dword [ebp - 0x18]
imul edx, ecx
movsx eax, byte [ebp - 0x14]
add edx, eax
mov cl, byte [ebp - 0xc]
add cl, dl
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x10]
add edx, 0x145
mov byte [ebp - 0x4c], dl
movsx eax, byte [ebp - 0x1c]
imul eax, eax, 0xffffff23
mov dword [ebp - 0x10], eax
mov ecx, 0xfffffcfa
sub ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
sub edx, ecx
mov dword [ebp - 0x18], edx
movsx eax, byte [ebp - 0x1c]
movsx ecx, byte [ebp - 0x14]
lea edx, [eax + ecx + 0x23f]
mov dword [ebp - 0x18], edx
movsx eax, byte [ebp - 0xc]
movsx ecx, byte [ebp - 0xc]
imul ecx, ecx, 0xfffffd44
add eax, ecx
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x20]
xor eax, eax
mov ax, word [edx]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
movsx eax, byte [ebp - 0xc]
mov ecx, 0xfffffd5e
sub ecx, eax
add ecx, dword [ebp - 0x18]
mov byte [ebp - 0x4c], cl
movsx edx, byte [ebp - 0xc]
movsx eax, byte [ebp - 0x14]
lea ecx, [edx + eax + 0x28e]
mov dl, byte [ebp - 0xc]
sub dl, cl
mov byte [ebp - 0xc], dl
movsx eax, byte [ebp - 0xc]
movsx ecx, byte [ebp - 0x44]
add eax, ecx
movsx edx, byte [ebp - 0x4c]
sub eax, edx
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x20]
shl edx, 2
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x18], ecx
movsx edx, byte [ebp - 0x4c]
movsx eax, byte [ebp - 0x44]
add edx, eax
mov cl, byte [ebp - 0x1c]
add cl, dl
mov byte [ebp - 0x1c], cl
movsx edx, byte [ebp - 0x44]
mov eax, dword [ebp - 0x24]
imul eax, eax, 0x25e
add edx, eax
mov cl, byte [ebp - 0x44]
add cl, dl
mov byte [ebp - 0x44], cl
mov edx, dword [ebp - 4]
sub edx, 0xf4
mov byte [ebp - 0xc], dl
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x20], ecx
movsx edx, byte [ebp - 0x14]
sub edx, 0x276
mov al, byte [ebp - 0x44]
add al, dl
mov byte [ebp - 0x44], al
movsx ecx, byte [ebp - 0xc]
movsx edx, byte [ebp - 0x4c]
add ecx, edx
movsx eax, byte [ebp - 0x1c]
add ecx, eax
mov byte [ebp - 0x44], cl
movsx ecx, byte [ebp - 0x4c]
mov edx, 0xfffffca4
sub edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 4]
imul eax, eax, 0x19e
mov byte [ebp - 0x1c], al
movsx ecx, byte [ebp - 0x44]
mov edx, dword [ebp - 0x10]
lea eax, [ecx + edx - 0x3f4]
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
add edx, dword [ebp + 8]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x24]
mov cl, byte [ebp - 0x14]
add cl, al
mov byte [ebp - 0x14], cl
movsx edx, byte [ebp - 0xc]
add edx, dword [ebp - 0x24]
mov al, byte [ebp - 0xc]
add al, dl
mov byte [ebp - 0xc], al
mov ecx, dword [ebp - 0x10]
sub ecx, 0x6a
mov edx, dword [ebp - 0x24]
sub edx, ecx
mov dword [ebp - 0x24], edx
movsx eax, byte [ebp - 0x4c]
imul eax, eax, 0xfffffdb6
imul eax, eax, 0xfffffe37
mov cl, byte [ebp - 0x44]
sub cl, al
mov byte [ebp - 0x44], cl
mov edx, dword [ebp - 0x10]
imul edx, edx, 0xfffffc77
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx]
mov dword [ebp - 0x20], edx
mov al, byte [ebp - 0x14]
sub al, 0xe6
mov byte [ebp - 0x14], al
movsx ecx, byte [ebp - 0x44]
movsx edx, byte [ebp - 0x1c]
sub ecx, edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], ecx
movsx eax, byte [ebp - 0xc]
mov ecx, 0x52
sub ecx, eax
sub ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
add edx, ecx
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x20]
add eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x24]
imul ecx, ecx, 0xfffffe43
mov dword [ebp - 4], ecx
movsx edx, byte [ebp - 0x4c]
imul edx, edx, 0x29b
sub edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x2c], eax
mov cl, byte [ebp - 0xc]
sub cl, 0x9c
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0x24]
imul edx, edx, 0xfffffc24
mov al, byte [ebp - 0x4c]
add al, dl
mov byte [ebp - 0x4c], al
mov cl, byte [ebp - 0x1c]
add cl, 0xeb
mov byte [ebp - 0x1c], cl
mov eax, dword [ebp - 0x20]
jmp 0x4121a7
mov edx, dword [ebp - 0x18]
add edx, 0x349
mov al, byte [ebp - 0x44]
add al, dl
mov byte [ebp - 0x44], al
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0xfffffe47
movsx edx, byte [ebp - 0x1c]
imul ecx, edx
mov al, byte [ebp - 0x44]
add al, cl
mov byte [ebp - 0x44], al
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
lea eax, [edx + ecx - 0x51b]
mov dword [ebp - 0x24], eax
movsx ecx, byte [ebp - 0x1c]
imul ecx, ecx, 0xffffff1f
mov edx, dword [ebp - 0x10]
sub edx, ecx
mov dword [ebp - 0x10], edx
movsx eax, byte [ebp - 0x44]
imul eax, dword [ebp - 0x18]
movsx ecx, byte [ebp - 0x14]
imul eax, ecx
mov edx, dword [ebp - 0x10]
sub edx, eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
add edx, ecx
mov byte [ebp - 0x1c], dl
movsx eax, byte [ebp - 0x44]
add eax, 0x342
sub eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov cl, byte [ebp - 0x4c]
sub cl, 0xa8
mov byte [ebp - 0x4c], cl
jmp 0x411acb
movsx edx, byte [ebp - 0x1c]
movsx eax, byte [ebp - 0x44]
sub edx, eax
mov ecx, dword [ebp - 0x10]
add ecx, edx
mov dword [ebp - 0x10], ecx
movsx edx, byte [ebp - 0x44]
mov eax, dword [ebp - 0x10]
add eax, edx
mov byte [ebp - 0x44], al
movsx ecx, byte [ebp - 0xc]
mov edx, dword [ebp - 0x2c]
add edx, ecx
mov eax, dword [ebp - 0x10]
sub eax, edx
mov dword [ebp - 0x10], eax
movsx ecx, byte [ebp - 0xc]
imul ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
mov esp, ebp
pop ebp
ret