Function at 0x40a390
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c8
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b0], edi
mov dword [ebp - 0x204], eax
mov edi, dword [eax + 4]
xor eax, eax
mov dword [ebp - 0x1ac], ebx
push 1
pop ebx
mov dword [ebp - 0x1fc], 0
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1a4], esi
movzx esi, byte [edi + 0x16d]
lea eax, [ebp - 0x394]
push eax
and esi, 0x10
lea edx, [ebp - 0x1dc]
push edx
shr esi, 4
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.00428830
mov dword [ebp - 0x10], eax
add esp, 0x10
cmp dword [ebp - 0x10], 0
jne 0x40bad6
mov ecx, dword [ebp - 0x1d4]
cmp ecx, 2
je 0x40bb56
cmp ecx, 1
je 0x40baca
movzx eax, byte [edi + 0x16d]
test al, 0x20
mov dword [ebp - 0x1b4], eax
je 0x40a48a
movsx eax, byte [edi + 0x158]
test eax, eax
jne 0x40a48a
cmp dword [ebp - 0x1d0], 1
jle 0x40a48a
cmp ecx, 5
jl 0x40a48a
cmp ecx, 0x11
jle 0x40a47d
cmp ecx, 0x19
jl 0x40a48a
cmp ecx, 0x1f
jle 0x40a47d
cmp ecx, 0x32
jl 0x40a473
cmp ecx, 0x34
jle 0x40a47d
jmp 0x40a48a
cmp ecx, 0x28
jl 0x40a48a
cmp ecx, 0x30
jg 0x40a48a
mov eax, 1
mov dword [ebp - 0x1cc], eax
jmp 0x40a492
xor eax, eax
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x394]
cmp eax, 7
jl 0x40a5d0
cmp eax, 8
jg 0x40a5d0
mov eax, dword [ebp - 0x1d0]
test eax, eax
mov dword [ebp - 0x1b8], eax
je 0x40a4cd
mov eax, dword [ebp - 0x1d8]
cdq
mov ebx, dword [ebp - 0x1b8]
idiv ebx
mov ebx, eax
jmp 0x40a4cf
xor ebx, ebx
test ebx, ebx
je 0x40a5c3
cmp ecx, 0x34
je 0x40a4e6
cmp ecx, 0x1c
jl 0x40a4f3
cmp ecx, 0x2c
jg 0x40a4f3
mov eax, 1
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], eax
jmp 0x40a4fa
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x390]
test eax, eax
jle 0x40a569
mov edx, dword [ebp - 0x1b8]
cmp edx, dword [ebp - 0x380]
jne 0x40a529
mov edx, dword [ebp - 0x384]
cmp edx, dword [ebp - 0x388]
jg 0x40a529
cmp edx, 1
je 0x40a7f9
mov dword [ebp - 0x214], edi
xor ecx, ecx
lea edi, [ecx*8]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + edi - 0x384]
mov edi, dword [ebp + edi - 0x380]
mov dword [ebp + ecx*4 - 0xa8], edx
mov dword [ebp + ecx*4 - 0x124], edi
mov dword [ebp + ecx*4 - 0x1a0], edx
inc ecx
cmp ecx, eax
jl 0x40a531
mov edi, dword [ebp - 0x214]
xor edx, edx
test eax, eax
jle 0x40a59a
mov dword [ebp - 0x214], edi
xor ecx, ecx
mov edi, dword [ebp + ecx*4 - 0x1a0]
sub edi, dword [ebp + ecx*4 - 0xa8]
imul edi, dword [ebp + ecx*4 - 0x124]
inc ecx
add edx, edi
cmp ecx, eax
jl 0x40a577
mov edi, dword [ebp - 0x214]
add edx, dword [ebp - 0x38c]
lea eax, [ebp - 0x394]
mov dword [ebp - 0x1dc], edx
lea edx, [ebp - 0x1a0]
push eax
push edx
push 0
call fcn.0042a900
add esp, 0xc
jmp 0x40a6af
mov eax, 1
mov dword [ebp - 8], eax
jmp 0x40a6af
cmp eax, 6
je 0x40a5de
cmp eax, 5
jne 0x40a666
cmp dword [ebp - 0x1d0], 0
je 0x40a654
mov eax, dword [ebp - 0x1d8]
test eax, eax
mov dword [ebp - 0x1b8], eax
je 0x40a65c
test byte [ebp - 0x1b4], 0x10
je 0x40a644
push edi
lea eax, [ebp - 0x1dc]
push eax
call fcn.0042afb0
add esp, 8
test eax, eax
je 0x40a64b
cmp dword [ebp - 0x1cc], 0
jne 0x40a644
mov eax, dword [ebp - 0x1d0]
test eax, eax
mov dword [ebp - 0x1b8], eax
je 0x40a640
mov eax, dword [ebp - 0x1d8]
cdq
mov ecx, dword [ebp - 0x1b8]
idiv ecx
mov ebx, eax
jmp 0x40a6af
xor ebx, ebx
jmp 0x40a6af
mov ebx, 1
jmp 0x40a6af
mov ebx, 1
xor esi, esi
jmp 0x40a6af
xor eax, eax
mov dword [ebp - 0x1b8], eax
mov ebx, 1
mov dword [ebp - 8], ebx
jmp 0x40a6af
cmp ecx, 0x34
je 0x40a697
cmp ecx, 0x1c
jl 0x40a675
cmp ecx, 0x2c
jle 0x40a697
mov eax, dword [ebp - 0x1d8]
test eax, eax
mov edx, dword [ebp - 8]
jne 0x40a687
mov edx, 1
mov ebx, 1
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 8], edx
jmp 0x40a6af
mov eax, dword [ebp - 0x1d0]
mov ebx, 2
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x1e8], esi
movzx edx, byte [edi + 0x16f]
test dl, 0x20
je 0x40a728
and edx, 0xffffffdf
mov byte [edi + 0x16f], dl
cmp ebx, 1
je 0x40aa21
xor eax, eax
push eax
push eax
push edi
call fcn.00428b30
mov dword [ebp - 0x10], eax
add esp, 0xc
cmp dword [ebp - 0x10], 0
jne 0x40a9a1
add dword [edi + 0x98], 1
mov eax, dword [edi + 0x3c]
movzx edx, byte [edi + 0x16f]
adc dword [edi + 0x9c], 0
and edx, 0xfffffffb
mov dword [edi + 0x48], eax
mov byte [edi + 0x16f], dl
cmp byte [edi + 0x154], 3
je 0x40a8e9
mov dword [edi + 0x80], 0
cmp dword [ebp - 4], 0
jne 0x40b7ca
cmp dword [ebp - 8], 0
je 0x40aa4a
cmp ebx, 1
jle 0x40a3de
mov eax, dword [ebp - 0x394]
cmp eax, 7
je 0x40a759
cmp eax, 8
jne 0x40a7d8
cmp dword [ebp - 0xc], 0
je 0x40a776
mov eax, dword [ebp - 0x1d0]
xor edx, edx
add dword [ebp - 0x1dc], eax
dec ebx
mov dword [ebp - 0xc], edx
jmp 0x40a6b5
cmp dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0xc]
je 0x40a784
mov edx, 1
xor eax, eax
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x390]
test edx, edx
jle 0x40a7b2
xor ecx, ecx
mov esi, dword [ebp + ecx*4 - 0x1a0]
sub esi, dword [ebp + ecx*4 - 0xa8]
imul esi, dword [ebp + ecx*4 - 0x124]
inc ecx
add eax, esi
cmp ecx, edx
jl 0x40a795
add eax, dword [ebp - 0x38c]
lea edx, [ebp - 0x1a0]
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x394]
push eax
push edx
push 0
call fcn.0042a900
add esp, 0xc
jmp 0x40a7f3
mov edx, dword [ebp - 0xc]
test edx, edx
mov eax, dword [ebp - 0x1d0]
je 0x40a7ea
mov edx, 0
add dword [ebp - 0x1dc], eax
mov dword [ebp - 0xc], edx
dec ebx
jmp 0x40a6b5
cmp eax, 1
jg 0x40a881
test byte [ebp - 0x1b4], 0x10
je 0x40a83b
push edi
lea eax, [ebp - 0x1dc]
push eax
call fcn.0042afb0
add esp, 8
test eax, eax
je 0x40a85d
cmp dword [ebp - 0x1cc], 0
jne 0x40a83b
mov eax, dword [ebp - 0x390]
test eax, eax
jg 0x40a529
jmp 0x40a569
mov eax, dword [ebp - 0x1d8]
mov ebx, 1
mov edx, dword [ebp - 0x38c]
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1dc], edx
jmp 0x40a6af
mov esi, dword [ebp - 0x1d8]
mov ebx, 1
mov eax, dword [ebp - 0x38c]
mov dword [ebp - 0x1b8], esi
xor esi, esi
mov dword [ebp - 0x1dc], eax
jmp 0x40a6af
mov dword [ebp - 0x214], edi
mov ecx, 1
lea edx, [ecx*8]
lea edx, [edx + ecx*4]
mov edi, dword [ebp + edx - 0x384]
cmp edi, 1
je 0x40a8ad
mov edi, dword [ebp - 0x214]
jmp 0x40a529
cmp edi, dword [ebp + edx - 0x388]
jg 0x40a8a2
mov edi, dword [ebp + edx - 0x394]
imul edi, dword [ebp + edx - 0x38c]
cmp edi, dword [ebp + edx - 0x380]
je 0x40a8d9
mov edi, dword [ebp - 0x214]
jmp 0x40a529
inc ecx
cmp ecx, eax
jl 0x40a88c
mov edi, dword [ebp - 0x214]
jmp 0x40a802
movzx ecx, byte [eax + 1]
shl ecx, 8
movzx esi, byte [eax]
or esi, ecx
movsx ecx, si
cmp ecx, 3
je 0x40a902
cmp ecx, 1
jne 0x40a90d
add eax, 2
mov dword [edi + 0x3c], eax
jmp 0x40a71e
mov eax, dword [edi + 0x18]
test eax, eax
mov esi, dword [ebp - 0x1a4]
je 0x40a97f
test byte [eax + 0x44], 2
je 0x40a952
mov edx, 0x23
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [edi + 0x64]
test eax, eax
je 0x40a93d
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov eax, 0x23
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, 0x23
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x23
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
mov esi, dword [ebp - 0x1a4]
je 0x40aa04
test byte [edx + 0x44], 2
je 0x40a9dc
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40a9cc
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp byte [eax], 1
jne 0x40a6d3
mov eax, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1b8]
mov dword [edi + 0x80], eax
mov dword [edi + 0x134], edx
jmp 0x40a6d3
mov esi, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1c4], ecx
mov dword [ebp - 0x1a8], ecx
lea ecx, [esi - 1]
mov eax, dword [ebp - 0x1dc]
cmp ecx, 0x20
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1bc], esi
jae 0x40aaaa
mov eax, 1
shl eax, cl
test eax, 0x808a
je 0x40aaaa
mov esi, dword [ebp - 0x1c0]
mov eax, 1
and esi, ecx
mov dword [ebp - 0x1e4], esi
mov esi, dword [edi + 0x3c]
and ecx, esi
jmp 0x40aabd
mov ecx, dword [ebp - 0x1c0]
xor eax, eax
mov esi, dword [edi + 0x3c]
mov dword [ebp - 0x1e4], ecx
mov ecx, esi
test dl, 0x40
jne 0x40abc7
cmp dword [edi + 0x138], 7
je 0x40b3b0
xor edx, edx
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], ecx
mov ecx, edx
mov dword [ebp - 0x1f8], ebx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c4]
mov ebx, dword [edi + 0x44]
sub ebx, esi
cmp edx, ebx
jle 0x40adf2
test ebx, ebx
jle 0x40ab2a
push ebx
push esi
push dword [ebp - 0x1c8]
call fcn.004a8470
add esp, 0xc
mov edx, dword [ebp - 0x1a8]
sub edx, ebx
add dword [ebp - 0x1c8], ebx
add dword [edi + 0x3c], ebx
mov dword [ebp - 0x1a8], edx
movsx eax, byte [edi + 0x154]
cmp eax, 3
je 0x40ad31
cmp dword [edi + 0x138], 0xb
jne 0x40ab4c
test byte [edi + 0x172], 0x20
jne 0x40ab6f
cmp eax, 5
jne 0x40ac9d
cmp edx, dword [edi + 0xec]
jb 0x40ab6f
mov eax, dword [ebp - 0x1c8]
mov dword [edi + 0x80], eax
mov dword [edi + 0x134], edx
xor eax, eax
push eax
push eax
push edi
call fcn.00428b30
add esp, 0xc
test eax, eax
jne 0x40b74a
mov edx, dword [ebp - 0x1a8]
mov esi, dword [edi + 0x3c]
mov dword [edi + 0x48], esi
cmp edx, dword [edi + 0xec]
jb 0x40aba4
sub edx, dword [edi + 0xf0]
mov dword [ebp - 0x1a8], edx
cmp byte [edi + 0x154], 3
jne 0x40abbd
add esi, 2
mov ecx, 1
mov dword [edi + 0x3c], esi
jmp 0x40aaf2
mov ecx, 1
jmp 0x40aaf2
cmp dword [ebp - 0x1cc], 0
je 0x40ac5c
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1c0]
test byte [ebp - 0x1e4], 3
lea eax, [eax + edx]
jne 0x40ac4b
cmp dword [ebp - 0x1bc], 4
je 0x40ac3a
cmp dword [ebp - 0x1bc], 8
jne 0x40ac0f
cmp eax, dword [ebp - 0x1c0]
ja 0x40b4dd
jmp 0x40a73c
cmp dword [ebp - 0x1bc], 0x10
jne 0x40ac29
cmp eax, dword [ebp - 0x1c0]
ja 0x40b562
jmp 0x40a73c
cmp eax, dword [ebp - 0x1c0]
ja 0x40b64a
jmp 0x40a73c
cmp eax, dword [ebp - 0x1c0]
ja 0x40b665
jmp 0x40a73c
cmp eax, dword [ebp - 0x1c0]
ja 0x40b6bc
jmp 0x40a73c
cmp dword [ebp - 0x1e8], 0
je 0x40a73c
push dword [ebp - 0x1b8]
push edi
lea eax, [ebp - 0x1dc]
push eax
call fcn.0042a960
mov dword [ebp - 0x10], eax
add esp, 0xc
cmp dword [ebp - 0x10], 0
je 0x40a73c
push 0
push 0x5f
call fcn.0040e0a0
add esp, 8
jmp 0x40a73c
mov eax, dword [edi + 0x18]
test eax, eax
mov esi, dword [ebp - 0x1a4]
je 0x40ad0f
test byte [eax + 0x44], 2
je 0x40ace2
mov edx, 0x43
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [edi + 0x64]
test eax, eax
je 0x40accd
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov eax, 0x43
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, 0x43
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x43
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x48]
movzx edx, byte [eax + 1]
shl edx, 8
movzx ecx, byte [eax]
or ecx, edx
movsx ecx, cx
cmp ecx, 0x20
jae 0x40ab6f
mov eax, 1
shl eax, cl
test eax, 0x400000c
je 0x40ab6f
mov eax, dword [edi + 0x18]
test eax, eax
mov esi, dword [ebp - 0x1a4]
je 0x40add0
test byte [eax + 0x44], 2
je 0x40ada3
mov edx, 0x43
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [edi + 0x64]
test eax, eax
je 0x40ad8e
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov eax, 0x43
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, 0x43
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x43
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x1c4], edx
mov edx, ecx
mov dword [ebp - 0x10], eax
test edx, edx
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
mov ebx, dword [ebp - 0x1f8]
jne 0x40b342
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1c4]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x1cc], 0
lea eax, [edx + eax]
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1f4]
je 0x40b1a6
test byte [ebp - 0x1e4], 3
jne 0x40b0e8
test cl, 3
jne 0x40b0e8
cmp dword [ebp - 0x1ec], 4
je 0x40b076
cmp dword [ebp - 0x1ec], 8
jne 0x40af1d
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b38a
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov edx, dword [esi + 4]
mov edi, edx
mov ecx, edx
and edi, 0xff0000
shr ecx, 0x18
shr edi, 8
or ecx, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
shl edx, 0x18
or ecx, edi
mov ebx, dword [esi]
or ecx, edx
mov edx, ebx
mov edi, ebx
mov dword [eax], ecx
and edx, 0xff0000
mov ecx, ebx
shr edi, 0x18
and ecx, 0xff00
shr edx, 8
shl ecx, 8
or edi, edx
shl ebx, 0x18
or edi, ecx
or edi, ebx
mov ebx, dword [ebp - 0x1ec]
add esi, ebx
mov dword [eax + 4], edi
add eax, ebx
cmp eax, dword [ebp - 0x1e0]
jb 0x40ae9f
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1f8]
add dword [edi + 0x3c], eax
jmp 0x40a73c
cmp dword [ebp - 0x1ec], 0x10
jne 0x40b02d
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b38a
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov esi, eax
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edx, eax
mov dword [ebp - 0x398], edi
mov edi, eax
and edi, 0xff0000
shr edx, 0x18
shr edi, 8
or edx, edi
mov edi, eax
and edi, 0xff00
shl edi, 8
shl eax, 0x18
or edx, edi
or edx, eax
mov edi, ebx
mov dword [esi], edx
mov edx, ebx
and edx, 0xff0000
mov eax, ebx
shr edi, 0x18
and eax, 0xff00
shr edx, 8
shl eax, 8
or edi, edx
shl ebx, 0x18
or edi, eax
or edi, ebx
mov ebx, ecx
mov edx, ecx
and ebx, 0xff0000
mov eax, ecx
shr edx, 0x18
and eax, 0xff00
shr ebx, 8
shl eax, 8
or edx, ebx
shl ecx, 0x18
or edx, eax
or edx, ecx
mov dword [esi + 8], edx
mov edx, dword [ebp - 0x398]
mov ecx, edx
mov ebx, edx
and ecx, 0xff0000
mov eax, edx
shr ebx, 0x18
and eax, 0xff00
shr ecx, 8
shl eax, 8
or ebx, ecx
shl edx, 0x18
or ebx, eax
mov ecx, dword [ebp - 0x1ec]
or ebx, edx
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebx
add esi, ecx
add dword [ebp - 0x28], ecx
cmp esi, dword [ebp - 0x1e0]
jb 0x40af4a
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1f8]
add dword [edi + 0x3c], eax
jmp 0x40a73c
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b38a
mov dword [ebp - 0x214], edi
mov edx, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1ec]
mov edi, eax
movzx eax, word [esi]
add esi, ecx
rol ax, 8
mov word [edi], ax
add edi, ecx
cmp edi, edx
jb 0x40b050
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
add dword [edi + 0x3c], eax
jmp 0x40a73c
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b38a
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov eax, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x18]
mov edx, dword [esi]
mov edi, edx
mov ecx, edx
and edi, 0xff0000
shr ecx, 0x18
add esi, eax
shr edi, 8
or ecx, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
shl edx, 0x18
or ecx, edi
or ecx, edx
mov dword [ebx], ecx
add ebx, eax
cmp ebx, dword [ebp - 0x1e0]
jb 0x40b09a
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1f8]
add dword [edi + 0x3c], eax
jmp 0x40a73c
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b38a
mov eax, dword [ebp - 0x1ec]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x214], edi
mov edi, eax
mov ebx, dword [ebp - 0x18]
cmp edi, 1
je 0x40b398
cmp dword [ebp - 0x24], 0
jle 0x40b180
xor ecx, ecx
lea eax, [edi + esi]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], ebx
lea edx, [edi + ebx]
mov dword [ebp - 0x20], edx
xor edx, edx
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov edi, dword [ebp - 0x18]
movzx eax, byte [ecx + esi]
mov esi, dword [ebp - 0x1c]
movzx ebx, byte [edx + esi - 1]
xor eax, ebx
mov byte [ecx + edi], bl
inc ecx
movzx ebx, byte [edx + esi - 1]
dec edx
mov edi, dword [ebp - 0x20]
xor ebx, eax
mov eax, dword [ebp - 0x14]
mov byte [eax + edi - 1], bl
dec eax
cmp ecx, dword [ebp - 0x24]
jl 0x40b141
mov edi, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x28]
add ebx, edi
add esi, edi
cmp ebx, dword [ebp - 0x1e0]
jb 0x40b11a
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1f8]
add dword [edi + 0x3c], eax
jmp 0x40a73c
test eax, eax
je 0x40b322
test byte [ebp - 0x1e4], 7
jne 0x40b322
test cl, 7
jne 0x40b322
cmp dword [ebp - 0x1ec], 4
je 0x40b2df
cmp dword [ebp - 0x1ec], 8
jne 0x40b22f
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b3a2
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov ecx, dword [ebp - 0x1e0]
mov ebx, dword [ebp - 0x1ec]
mov edi, eax
mov eax, dword [esi]
mov edx, dword [esi + 4]
add esi, ebx
mov dword [edi], eax
mov dword [edi + 4], edx
add edi, ebx
cmp edi, ecx
jb 0x40b203
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1f8]
add dword [edi + 0x3c], eax
jmp 0x40ac5c
cmp dword [ebp - 0x1ec], 0x10
jne 0x40b29a
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b3a2
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0x18]
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov dword [edx], ebx
mov dword [edx + 4], edi
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
add esi, ecx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], edi
add edx, ecx
cmp edx, eax
jb 0x40b262
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1f8]
add dword [edi + 0x3c], eax
jmp 0x40ac5c
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b3a2
mov dword [ebp - 0x214], edi
mov edx, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1ec]
mov edi, eax
movzx eax, word [esi]
add esi, ecx
mov word [edi], ax
add edi, ecx
cmp edi, edx
jb 0x40b2bd
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
add dword [edi + 0x3c], eax
jmp 0x40ac5c
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1e0]
jae 0x40b3a2
mov dword [ebp - 0x214], edi
mov edx, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1ec]
mov edi, eax
mov eax, dword [esi]
add esi, ecx
mov dword [edi], eax
add edi, ecx
cmp edi, edx
jb 0x40b302
mov edi, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c4]
add dword [edi + 0x3c], eax
jmp 0x40ac5c
push dword [ebp - 0x1c4]
push esi
push dword [ebp - 0x18]
call fcn.004a8470
add esp, 0xc
mov eax, dword [ebp - 0x1a8]
add dword [edi + 0x3c], eax
jmp 0x40ac5c
push dword [ebp - 0x1c4]
push esi
push dword [ebp - 0x1c8]
call fcn.004a8470
add esp, 0xc
mov eax, dword [ebp - 0x1a8]
add dword [edi + 0x3c], eax
cmp dword [ebp - 0x1cc], 0
je 0x40ac5c
mov eax, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1c0], edx
jmp 0x40abd4
add esi, dword [ebp - 0x1c4]
mov dword [edi + 0x3c], esi
jmp 0x40a73c
movzx eax, byte [esi]
mov byte [ebx], al
jmp 0x40b180
add esi, dword [ebp - 0x1c4]
mov dword [edi + 0x3c], esi
jmp 0x40ac5c
jne 0x40abc7
mov edx, dword [ebp + 0xc]
lea esi, [ebp - 0x1fc]
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x210]
mov eax, dword [ebp - 0xc]
movsx ecx, byte [edx]
lea edx, [ebp - 0x208]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x20c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
lea ecx, [ebp - 0x1c8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov eax, edi
mov dword [esp + 0x24], edx
lea edx, [ebp - 0x1a8]
call fcn.0040bb70
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40b439
cmp dword [ebp - 0x1cc], 0
je 0x40ac5c
mov eax, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1c0], edx
jmp 0x40abd4
mov edx, dword [edi + 0x18]
test edx, edx
mov esi, dword [ebp - 0x1a4]
je 0x40b4b2
test byte [edx + 0x44], 2
je 0x40b480
mov eax, dword [ebp - 0x20c]
mov dword [edx + 0x38], eax
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x208]
mov dword [ecx + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40b470
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
movzx eax, byte [edi + 0x16c]
and eax, 7
push eax
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x39c], eax
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [edx + 4]
mov edi, ecx
mov ebx, ecx
and edi, 0xff0000
shr ebx, 0x18
shr edi, 8
or ebx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
shl ecx, 0x18
or ebx, edi
mov esi, dword [edx]
or ebx, ecx
mov ecx, esi
mov edi, esi
mov dword [edx], ebx
and ecx, 0xff0000
mov ebx, esi
shr edi, 0x18
and ebx, 0xff00
shr ecx, 8
shl ebx, 8
or edi, ecx
shl esi, 0x18
or edi, ebx
or edi, esi
mov dword [edx + 4], edi
add edx, eax
cmp edx, dword [ebp - 0x39c]
jb 0x40b4f5
mov ebx, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x214]
jmp 0x40a73c
mov dword [ebp - 0x39c], eax
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov esi, edx
mov edi, dword [esi]
mov edx, dword [esi + 0xc]
mov ecx, edx
mov dword [ebp - 0x3a0], edi
mov edi, edx
and edi, 0xff0000
shr ecx, 0x18
shr edi, 8
or ecx, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
shl edx, 0x18
or ecx, edi
mov ebx, dword [esi + 8]
or ecx, edx
mov edx, ebx
mov edi, ebx
mov dword [esi], ecx
and edx, 0xff0000
mov ecx, ebx
shr edi, 0x18
and ecx, 0xff00
shr edx, 8
shl ecx, 8
or edi, edx
shl ebx, 0x18
or edi, ecx
mov eax, dword [esi + 4]
or edi, ebx
mov ebx, eax
mov ecx, eax
and ebx, 0xff0000
mov edx, eax
shr ecx, 0x18
and edx, 0xff00
shr ebx, 8
shl edx, 8
or ecx, ebx
shl eax, 0x18
or ecx, edx
or ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [ebp - 0x3a0]
mov eax, ecx
mov ebx, ecx
and eax, 0xff0000
mov edx, ecx
shr ebx, 0x18
and edx, 0xff00
shr eax, 8
shl edx, 8
or ebx, eax
shl ecx, 0x18
or ebx, edx
or ebx, ecx
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebx
add esi, dword [ebp - 0x1bc]
cmp esi, dword [ebp - 0x39c]
jb 0x40b576
mov ebx, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x214]
jmp 0x40a73c
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1c0]
rol word [ecx], 8
add ecx, edx
cmp ecx, eax
jb 0x40b656
jmp 0x40a73c
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov edx, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x1c0]
mov ecx, dword [esi]
mov edi, ecx
mov ebx, ecx
and edi, 0xff0000
shr ebx, 0x18
shr edi, 8
or ebx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
shl ecx, 0x18
or ebx, edi
or ebx, ecx
mov dword [esi], ebx
add esi, edx
cmp esi, eax
jb 0x40b67d
mov ebx, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x214]
jmp 0x40a73c
mov edx, dword [ebp - 0x1bc]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x40a73c
mov dword [ebp - 0x39c], eax
xor edx, edx
mov dword [ebp - 0x200], ecx
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x214], edi
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1bc]
mov ebx, edx
mov dword [ebp - 0x1c0], eax
mov edi, ebx
lea esi, [ecx + eax]
mov ecx, eax
movzx edx, byte [ecx]
inc ebx
movzx eax, byte [edi + esi - 1]
xor edx, eax
mov byte [ecx], al
inc ecx
xor byte [edi + esi - 1], dl
dec edi
cmp ebx, dword [ebp - 0x200]
jl 0x40b708
mov eax, dword [ebp - 0x1c0]
xor edx, edx
add eax, dword [ebp - 0x1bc]
cmp eax, dword [ebp - 0x39c]
jb 0x40b6f3
mov ebx, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x214]
jmp 0x40a73c
mov edx, dword [edi + 0x18]
test edx, edx
mov esi, dword [ebp - 0x1a4]
je 0x40b7ad
test byte [edx + 0x44], 2
je 0x40b785
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40b775
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1a4]
cmp dword [ebp - 0x1d4], 1
jne 0x40b98d
cmp byte [edi + 0x154], 3
je 0x40b9e5
test dl, 0x40
jne 0x40b8de
cmp dword [edi + 0x138], 7
jne 0x40b8de
cmp dword [ebp - 0x1fc], 0
jne 0x40b8de
xor edx, edx
lea eax, [ebp - 0x1fc]
mov dword [esp + 0xc], eax
lea ecx, [ebp - 0x208]
mov dword [esp + 0x10], edx
mov eax, edi
mov dword [esp + 0x14], ebx
lea ebx, [ebp - 0x210]
mov dword [esp + 0x18], 1
mov dword [ebp - 0x1a8], edx
lea edx, [ebp - 0x20c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edx
lea edx, [ebp - 0x1a8]
mov dword [esp + 0x24], ecx
lea ecx, [ebp - 0x1c8]
call fcn.0040bb70
test eax, eax
je 0x40b8de
mov edx, dword [edi + 0x18]
test edx, edx
je 0x40b99d
test byte [edx + 0x44], 2
je 0x40b8ac
mov eax, dword [ebp - 0x20c]
mov dword [edx + 0x38], eax
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x208]
mov dword [ecx + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40b89c
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
movzx eax, byte [edi + 0x16c]
and eax, 7
push eax
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x3c]
sub eax, dword [edi + 0x38]
mov ecx, dword [edi + 0xc0]
cdq
add ecx, eax
push dword [edi + 0x100]
mov dword [edi + 0xb8], ecx
adc edx, dword [edi + 0xc4]
and byte [edi + 0x16c], 0xdc
and byte [edi + 0x16e], 0xf7
mov dword [edi + 0xbc], edx
call fcn.0041d7f0
add esp, 4
test eax, eax
je 0x40b980
mov edx, dword [edi + 0x18]
test edx, edx
je 0x40b9c8
test byte [edx + 0x44], 2
je 0x40b958
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40b948
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x204]
mov dword [edx + 4], 0
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 0
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x48]
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl ecx, 8
or eax, ecx
movsx eax, ax
cmp eax, 0x1a
je 0x40b7ed
mov dword [ebp - 0x1a4], esi
xor esi, esi
cmp eax, 2
je 0x40ba38
cmp eax, 3
je 0x40ba38
push esi
push esi
push edi
call fcn.00428b30
add esp, 0xc
test eax, eax
jne 0x40ba4a
mov eax, dword [edi + 0x3c]
movzx edx, byte [eax + 1]
shl edx, 8
movzx ecx, byte [eax]
or ecx, edx
movsx eax, cx
cmp eax, 0x1a
jne 0x40ba08
mov esi, dword [ebp - 0x1a4]
movzx edx, byte [edi + 0x16f]
jmp 0x40b7ed
mov edx, dword [edi + 0x18]
test edx, edx
mov esi, dword [ebp - 0x1a4]
je 0x40baad
test byte [edx + 0x44], 2
je 0x40ba85
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40ba75
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 4], 1
jmp 0x40a6af
mov edx, dword [edi + 0x18]
test edx, edx
mov esi, dword [ebp - 0x1a4]
je 0x40bb39
test byte [edx + 0x44], 2
je 0x40bb11
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x40bb01
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423390
add esp, 0x14
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0040bfd0
add esp, 0x10
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov esi, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret