Function at 0x51cb10
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f4
lea edx, [ebp - 0x14]
push 4
mov eax, dword [ebp + 8]
push eax
push edx
mov dword [ebp - 0xc], esi
mov esi, dword [ebp + 0xc]
push esi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], eax
call fcn.00506290
add esp, 0x10
mov edi, eax
test edi, edi
je 0x51cba8
mov edx, dword [ebp + 0x10]
movzx eax, dl
test al, 1
je 0x51cb97
shr edx, 0x18
movzx edx, dl
test edx, 0x80
je 0x51cb87
lea edx, [ebp + 0x1f]
and edx, 0xfffffffc
lea eax, [edx + 4]
test byte [eax - 4], 0x10
je 0x51cb87
add edx, 7
and edx, 0xfffffffc
mov eax, dword [edx]
add edx, 7
and edx, 0xfffffffc
cmp byte [eax], 0x38
mov ebx, dword [edx]
jne 0x51cb87
cmp byte [eax + 2], 0x4e
je 0x51d194
movzx eax, di
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push str.unknown
push esi
push 2
push edi
call fcn.004db180
add esp, 0x10
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [eax + 0x84], edx
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xf4], edx
mov eax, dword [ebp - 0x14]
movzx edx, byte [ebp + 0x13]
test edx, 0x80
mov ebx, dword [eax + 0xb8]
mov edi, dword [eax + 0xbc]
mov dword [eax + 0xb0], ebx
mov dword [eax + 0xb4], edi
je 0x51cc58
lea eax, [ebp + 0x1f]
and eax, 0xfffffffc
lea ecx, [eax + 4]
mov ebx, dword [ecx - 4]
test bl, 0x20
je 0x51cbfe
mov ecx, dword [ebp - 0x14]
or byte [ecx + 0x173], 0x40
test bl, 0x10
je 0x51cc5a
add eax, 7
and eax, 0xfffffffc
mov edi, dword [eax]
add eax, 7
and eax, 0xfffffffc
mov eax, dword [eax]
mov dword [ebp - 0x1c4], eax
movsx eax, byte [edi]
cmp eax, 0x38
je 0x51dace
cmp eax, 0xb
je 0x51d8b0
cmp eax, 0x38
je 0x51d28b
cmp eax, 1
je 0x51cc52
push 0x1d3
push str.for_wseq_nml.c
push 2
push 8
call fcn.004db180
add esp, 0x10
movzx edx, byte [ebp + 0x13]
jmp 0x51cc5a
xor ebx, ebx
mov edi, dword [ebp - 0x14]
mov eax, 0x3b
mov dword [ebp - 0x1c], esi
movzx esi, byte [ebp + 0x10]
movzx ecx, byte [edi + 0x161]
cmp ecx, 2
mov ecx, esi
je 0x51cc7c
mov eax, 0x2c
mov dword [ebp - 0x18], eax
and ecx, 1
movzx eax, byte [edi + 0x16c]
and eax, 0xfffffffe
or eax, ecx
mov byte [edi + 0x16c], al
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c4], esi
and esi, 2
movzx ecx, byte [edi + 0x16c]
and ecx, 0xfffffffd
or ecx, esi
mov byte [edi + 0x16c], cl
mov ecx, edx
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x14]
shr ecx, 1
and ecx, 1
movzx eax, byte [esi + 0x16f]
shl ecx, 3
and eax, 0xfffffff7
or eax, ecx
mov byte [esi + 0x16f], al
mov eax, ebx
mov edi, dword [ebp - 0x14]
and eax, 0xffffff80
mov dword [ebp - 0x1c8], ecx
mov esi, dword [ebp - 0x1c]
movzx ecx, byte [edi + 0x173]
and ecx, 0x7f
or ecx, eax
mov byte [edi + 0x173], cl
cmp esi, 0xfffffffb
je 0x51eda8
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + 0x169]
test al, 0x20
je 0x51eb7e
test al, 0x40
je 0x51cd8c
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51db0c
test byte [eax + 0x44], 2
je 0x51cd62
mov edx, 0x2f
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x18]
mov dword [ecx + 0x3c], edx
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51cd50
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x2f
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, 0x2f
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
test byte [ecx + 0x16b], 8
je 0x51ce0b
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51db2b
test byte [eax + 0x44], 2
je 0x51cde1
mov dword [eax + 0x38], 0x103
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
mov dword [edx + 0x3c], 0x1f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x64]
test eax, eax
je 0x51cdcf
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x103
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 0x1f
movzx eax, byte [ecx + 0x16c]
push 0x103
and eax, 7
push eax
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
test byte [ecx + 0x16a], 0x40
jne 0x51ce8a
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51db4a
test byte [eax + 0x44], 2
je 0x51ce60
mov dword [eax + 0x38], 0x101
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
mov dword [edx + 0x3c], 0x1f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x64]
test eax, eax
je 0x51ce4e
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x101
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 0x1f
movzx eax, byte [ecx + 0x16c]
push 0x101
and eax, 7
push eax
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0x58]
mov ecx, 0x54
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
xor eax, eax
mov dword [edx + ecx - 4], eax
mov dword [edx + ecx - 8], eax
mov dword [edx + ecx - 0xc], eax
mov dword [edx + ecx - 0x10], eax
mov dword [edx + ecx - 0x14], eax
mov dword [edx + ecx - 0x18], eax
mov dword [edx + ecx - 0x1c], eax
sub ecx, 0x1c
jne 0x51ce95
mov ebx, edx
mov eax, dword [ebp - 0x14]
mov dword [ebx], eax
or byte [ebx + 0x4f], 8
mov byte [ebx + 0x44], 1
mov edx, dword [ebp - 0x14]
movzx eax, byte [ebx + 0x50]
and eax, 0xfffffffe
movzx ecx, byte [edx + 0x168]
shr ecx, 6
and ecx, 1
or eax, ecx
mov byte [ebx + 0x50], al
mov ebx, dword [ebp - 0x14]
movzx edx, byte [ebx + 0x163]
test edx, edx
je 0x51cf40
cmp edx, 1
je 0x51cf2d
cmp edx, 2
jne 0x51cf13
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0x4c]
or edx, 4
and edx, 0xffffffe7
mov byte [ecx + 0x4c], dl
mov ebx, dword [ebp - 0x14]
jmp 0x51cf40
cmp edx, 3
jne 0x51cf40
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0x4c]
and edx, 0xffffffeb
or edx, 8
mov byte [ecx + 0x4c], dl
mov ebx, dword [ebp - 0x14]
jmp 0x51cf40
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0x4c]
and edx, 0xfffffff3
or edx, 0x10
mov byte [ecx + 0x4c], dl
mov ebx, dword [ebp - 0x14]
movzx edx, byte [ebx + 0x15f]
test edx, edx
je case.default.0x51cf51
dec edx
cmp edx, 4
ja case.default.0x51cf51
jmp dword [edx*4 + 0x5f29e0]
mov edx, dword [ebp - 0x20]
and eax, 0xffffffc3
or eax, 0x40
mov byte [edx + 0x50], al
mov ebx, dword [ebp - 0x14]
jmp case.default.0x51cf51
mov edx, dword [ebp - 0x20]
and eax, 0xffffffa3
or eax, 0x20
mov byte [edx + 0x50], al
mov ebx, dword [ebp - 0x14]
jmp case.default.0x51cf51
mov edx, dword [ebp - 0x20]
and eax, 0xffffff93
or eax, 0x10
mov byte [edx + 0x50], al
mov ebx, dword [ebp - 0x14]
jmp case.default.0x51cf51
mov edx, dword [ebp - 0x20]
and eax, 0xffffff8b
or eax, 8
mov byte [edx + 0x50], al
mov ebx, dword [ebp - 0x14]
jmp case.default.0x51cf51
mov edx, dword [ebp - 0x20]
or eax, 4
and eax, 0xffffff87
mov byte [edx + 0x50], al
mov ebx, dword [ebp - 0x14]
test byte [ebx + 0x16b], 4
je 0x51d093
mov edi, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xbc]
neg edi
neg ecx
mov edx, dword [ebx + 0xb0]
add edi, edx
mov eax, dword [ebx + 0xb4]
add ecx, eax
or edi, ecx
je 0x51d093
test byte [ebx + 0x16d], 4
jne 0x51e9ae
mov ecx, dword [ebx + 0xe4]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push 0
push eax
push edx
mov dword [ebp - 0x28], edx
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
je 0x51e989
mov ecx, dword [ebp - 0x24]
mov edx, 0xffffffff
sub eax, edx
sub ecx, edx
or eax, ecx
je 0x51e8e9
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0xb0]
mov ecx, dword [ebx + 0xb4]
mov dword [ebx + 0xb8], edx
mov dword [ebx + 0xbc], ecx
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 0xb0]
mov eax, dword [edx + 0xb4]
mov dword [edx + 0xc0], edi
mov dword [edx + 0xc4], eax
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xc8], eax
mov dword [ecx + 0xcc], eax
mov edi, dword [ebp - 0x14]
mov ebx, dword [edi + 0xc8]
mov dword [edi + 0xf0], ebx
mov edx, dword [ebp - 0x14]
and byte [edx + 0x16d], 0xfd
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x90], eax
mov ebx, dword [ebp - 0x14]
mov eax, ebx
xor edx, edx
lea ecx, [ebp + 0x10]
call fcn.00521d20
test eax, eax
je 0x51d10a
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51db69
test byte [edx + 0x44], 2
je 0x51d0e5
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d0d8
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x1c0]
push eax
lea edx, [ebp - 0x38]
push edx
lea ecx, [ebp + 0x18]
push ecx
lea ebx, [ebp + 0x14]
push ebx
call fcn.00510550
add esp, 0x10
test eax, eax
je 0x51db9d
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51db83
test byte [edx + 0x44], 2
je 0x51d16f
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d162
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x1c8]
push eax
push esi
call fcn.00505c70
add esp, 8
test eax, eax
jne 0x51cb87
mov ecx, dword [ebp - 0x1c8]
xor edx, edx
mov dword [ecx + 0x84], edx
mov esi, dword [ebp - 0x1c8]
movzx ecx, byte [ebp + 0x10]
and ecx, 1
mov dword [esi + 0xf4], edx
mov esi, dword [ebp - 0x1c8]
movzx eax, byte [esi + 0x16c]
and eax, 0xfffffffe
or eax, ecx
mov byte [esi + 0x16c], al
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ebx]
mov dword [ecx + 0xf4], eax
mov eax, dword [ebp - 0x1c8]
mov ebx, dword [ebx + 4]
mov dword [eax + 0x84], ebx
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51d271
test byte [eax + 0x44], 2
je 0x51d24c
mov dword [eax + 0x38], edi
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [eax + 0x18]
mov dword [ecx + 0x3c], edi
mov ebx, dword [ebp - 0x1c8]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51d23d
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x1c8]
mov dword [eax + 0x64], edx
mov eax, edi
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push edi
movzx eax, byte [ecx + 0x16c]
push edi
and eax, 7
push eax
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push edi
push edi
push 0
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
cmp eax, 6
je 0x51d79f
cmp eax, 0x52
je 0x51d6b5
cmp eax, 0x3b
je 0x51d5a3
cmp eax, 0x3c
je 0x51d47a
cmp eax, 0x51
je 0x51d390
cmp eax, 0x53
jne 0x51cc3c
push 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x40]
push eax
push 0x53
push dword [edx]
push dword [edx + 4]
call fcn.004f77b0
add esp, 0x14
test eax, eax
jne 0x51d313
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x163]
mov byte [ecx + 0x164], dl
mov eax, dword [ebp - 0x14]
or byte [eax + 0x173], 0x20
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov byte [edx + 0x163], al
movsx eax, byte [edi + 4]
jmp 0x51cc37
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51d376
test byte [edx + 0x44], 2
je 0x51d351
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d344
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x40]
push eax
push 0x51
push dword [edx]
push dword [edx + 4]
call fcn.004f77b0
add esp, 0x14
test eax, eax
jne 0x51d3f4
mov ecx, dword [ebp - 0x14]
add edi, 4
movzx edx, byte [ecx + 0x15f]
mov byte [ecx + 0x160], dl
mov eax, dword [ebp - 0x14]
or byte [eax + 0x173], 0x10
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov byte [edx + 0x15f], al
mov eax, dword [ebp - 0x1c4]
add eax, 8
mov dword [ebp - 0x1c4], eax
movsx eax, byte [edi]
cmp eax, 0x38
je 0x51d457
jmp 0x51cc37
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51d460
test byte [edx + 0x44], 2
je 0x51d432
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d425
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
jmp 0x51d2bc
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x40]
push eax
push 0x3c
push dword [edx]
push dword [edx + 4]
call fcn.004f77b0
add esp, 0x14
test eax, eax
jne 0x51d51d
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x16e]
mov eax, edx
shr edx, 1
and eax, 0xfffffffb
and edx, 1
shl edx, 2
or eax, edx
mov byte [ecx + 0x16e], al
mov eax, dword [ebp - 0x14]
or byte [eax + 0x173], 8
mov eax, dword [ebp - 0x40]
cmp eax, 2
jne 0x51d4f1
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ebp + 0x12]
shr edx, 2
and edx, 1
movzx eax, byte [ecx + 0x16e]
add edx, edx
and eax, 0xfffffffd
or eax, edx
mov byte [ecx + 0x16e], al
jmp 0x51d4fe
cmp eax, 1
mov eax, dword [ebp - 0x14]
and byte [eax + 0x16e], 0xfd
add edi, 4
mov eax, dword [ebp - 0x1c4]
add eax, 8
mov dword [ebp - 0x1c4], eax
movsx eax, byte [edi]
cmp eax, 0x38
je 0x51d580
jmp 0x51cc37
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51d589
test byte [edx + 0x44], 2
je 0x51d55b
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d54e
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
jmp 0x51d2b3
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x40]
push eax
push 0x3b
push dword [edx]
push dword [edx + 4]
call fcn.004f77b0
add esp, 0x14
test eax, eax
jne 0x51d62f
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 0x159]
mov byte [edx + 0x15a], al
mov ecx, dword [ebp - 0x14]
or byte [ecx + 0x173], 4
mov eax, dword [ebp - 0x40]
cmp eax, 2
je 0x51d606
cmp eax, 1
jne 0x51d5f5
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x159], 0x27
jmp 0x51d610
cmp eax, 3
jne 0x51d606
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x159], 0x22
jmp 0x51d610
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x159], 0
add edi, 4
mov eax, dword [ebp - 0x1c4]
add eax, 8
mov dword [ebp - 0x1c4], eax
movsx eax, byte [edi]
cmp eax, 0x38
je 0x51d692
jmp 0x51cc37
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51d69b
test byte [edx + 0x44], 2
je 0x51d66d
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d660
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
jmp 0x51d2aa
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x40]
push eax
push 0x52
push dword [edx]
push dword [edx + 4]
call fcn.004f77b0
add esp, 0x14
test eax, eax
jne 0x51d719
mov ecx, dword [ebp - 0x14]
add edi, 4
movzx edx, byte [ecx + 0x161]
mov byte [ecx + 0x162], dl
mov eax, dword [ebp - 0x14]
or byte [eax + 0x173], 2
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov byte [edx + 0x161], al
mov eax, dword [ebp - 0x1c4]
add eax, 8
mov dword [ebp - 0x1c4], eax
movsx eax, byte [edi]
cmp eax, 0x38
je 0x51d77c
jmp 0x51cc37
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51d785
test byte [edx + 0x44], 2
je 0x51d757
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d74a
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
jmp 0x51d2a1
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x40]
push eax
push 6
push dword [edx]
push dword [edx + 4]
call fcn.004f77b0
add esp, 0x14
test eax, eax
jne 0x51d82a
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x16b]
mov eax, edx
shr edx, 5
and eax, 0xffffffbf
and edx, 1
shl edx, 6
or eax, edx
mov byte [ecx + 0x16b], al
mov eax, dword [ebp - 0x14]
or byte [eax + 0x173], 1
mov eax, dword [ebp - 0x40]
cmp eax, 1
je 0x51d801
cmp eax, 2
jne 0x51d801
mov eax, dword [ebp - 0x14]
or byte [eax + 0x16b], 0x20
jmp 0x51d80b
mov eax, dword [ebp - 0x14]
and byte [eax + 0x16b], 0xdf
add edi, 4
mov eax, dword [ebp - 0x1c4]
add eax, 8
mov dword [ebp - 0x1c4], eax
movsx eax, byte [edi]
cmp eax, 0x38
je 0x51d88d
jmp 0x51cc37
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51d896
test byte [edx + 0x44], 2
je 0x51d868
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51d85b
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
jmp 0x51d298
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
cmp byte [edi + 2], 0x4f
jne 0x51cc3c
mov eax, dword [ebp - 0x14]
test byte [eax + 0x16b], 4
jne 0x51d9b9
test byte [eax + 0x169], 0x20
jne 0x51d946
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51da05
test byte [edx + 0x44], 2
je 0x51d91c
mov eax, 0x6d
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51d90a
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x6d
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x6d
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51da24
test byte [edx + 0x44], 2
je 0x51d992
mov dword [edx + 0x38], 0x6e
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
mov dword [edx + 0x3c], 0x1f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x64]
test eax, eax
je 0x51d980
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x6e
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push 0x1f
movzx edx, byte [eax + 0x16c]
push 0x6e
and edx, 7
push edx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1c4]
mov dword [ebp - 0x1c8], edi
mov ecx, dword [edx]
add ecx, 0xffffffff
mov edi, dword [edx + 4]
adc edi, 0xffffffff
add edx, 8
mov dword [eax + 0xb0], ecx
mov dword [eax + 0xb4], edi
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c4], edx
xor edx, edx
mov edi, dword [ebp - 0x1c8]
mov ecx, dword [eax + 0xb4]
sub ecx, edx
jl 0x51da40
add edi, 4
movsx eax, byte [edi]
jmp 0x51cc2e
push eax
mov edx, 0x6d
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
push 0x1f
push 0x6e
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51daaf
test byte [edx + 0x44], 2
je 0x51da85
mov eax, 0x6f
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51da73
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x6f
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x6f
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
mov edx, 0x6f
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movsx eax, byte [edi + 2]
cmp eax, 0x4e
jne 0x51d28f
mov eax, dword [ebp - 0x1c4]
add edi, 4
mov ecx, dword [ebp - 0x14]
mov edx, dword [eax]
mov dword [ecx + 0xf4], edx
mov ecx, dword [ebp - 0x14]
mov edx, dword [eax + 4]
add eax, 8
mov dword [ebp - 0x1c4], eax
mov dword [ecx + 0x84], edx
movsx eax, byte [edi]
jmp 0x51cc25
push ecx
mov eax, 0x2f
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push 0x1f
push 0x103
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push 0x1f
push 0x101
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
test byte [eax + 0x168], 2
je 0x51dbb7
mov eax, dword [eax + 0x3c]
mov byte [eax], 0x26
mov edx, dword [ebp - 0x14]
inc dword [edx + 0x3c]
jmp 0x51dbc3
mov eax, dword [eax + 0x3c]
mov byte [eax], 0x24
mov edx, dword [ebp - 0x14]
inc dword [edx + 0x3c]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
call fcn.005221f0
test eax, eax
jne 0x51dc48
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51e4a6
test byte [eax + 0x44], 2
je 0x51dc1e
mov edx, 0x42
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x18]
mov dword [ecx + 0x3c], edx
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51dc0c
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, 0x42
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
test byte [ebp + 0x10], 0x20
jne 0x51dc82
mov edi, dword [ebp - 0x38]
cmp dword [ebp - 0x2c], 0
jle 0x51dc9f
mov dword [ebp - 0x1c], esi
xor ebx, ebx
movsx eax, byte [edi]
push eax
call fcn.00555620
mov edx, dword [ebp - 0x14]
inc ebx
add esp, 4
inc edi
mov ecx, dword [edx + 0x3c]
mov byte [ecx], al
mov esi, dword [ebp - 0x14]
inc dword [esi + 0x3c]
cmp ebx, dword [ebp - 0x2c]
jl 0x51dc5c
mov esi, dword [ebp - 0x1c]
jmp 0x51dc9f
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push dword [ebp - 0x38]
push dword [eax + 0x3c]
call fcn.005a35a0
add esp, 0xc
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
add dword [edx + 0x3c], eax
cmp esi, 0xfffffffb
je 0x51e693
mov edx, 1
lea ecx, [ebp + 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00521d20
test eax, eax
je 0x51dd23
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e4c5
test byte [edx + 0x44], 2
je 0x51dcfe
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51dcf1
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
test byte [eax + 0x168], 2
jne 0x51e5f1
mov eax, dword [ebp + 0x14]
cmp byte [eax], 1
je 0x51de5c
mov dword [ebp - 0x1c], esi
lea edi, [ebp - 0x1c0]
mov esi, dword [ebp - 0x20]
lea ebx, [ebp + 0x18]
push edi
lea eax, [ebp - 0x38]
push eax
push ebx
lea edx, [ebp + 0x14]
push edx
call fcn.00510550
add esp, 0x10
test eax, eax
jne 0x51e568
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [esp + 0xc], edi
lea ecx, [ebp - 0x1c4]
mov dword [esp + 0x10], eax
lea eax, [ebp + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
lea eax, [ebp + 0x14]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov edx, ebx
mov dword [esp + 0x28], ecx
lea ecx, [ebp - 0x38]
call fcn.0051f2a0
test eax, eax
jne 0x51e4df
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1c8], eax
cmp byte [edx], 1
je 0x51de11
cmp dword [ebp - 0x1c8], 0
jne 0x51dd4e
mov edx, 1
mov eax, dword [ebp - 0x14]
call fcn.005221f0
test eax, eax
je 0x51e3f8
mov eax, dword [ebp - 0x14]
test byte [eax + 0x168], 4
je 0x51ddf7
mov eax, dword [eax + 0x3c]
mov byte [eax], 0x20
mov edx, dword [ebp - 0x14]
inc dword [edx + 0x3c]
jmp 0x51de11
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x18]
mov byte [edx], al
mov ecx, dword [ebp - 0x14]
inc dword [ecx + 0x3c]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x3c]
mov dword [edx + 0x88], eax
cmp dword [ebp - 0x1c8], 0
jne 0x51de4a
cmp dword [ebp - 0x1c], 0xfffffffb
jne 0x51de32
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xd8], 0
jle 0x51e160
jmp 0x51de4a
mov edx, 1
lea ecx, [ebp + 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00521d20
test eax, eax
jne 0x51e268
mov eax, dword [ebp + 0x14]
movsx eax, byte [eax]
cmp eax, 1
jne 0x51dd4e
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + 0x168]
test dl, 2
jne 0x51e363
test dl, 2
je 0x51df04
mov ecx, dword [eax + 0x3c]
lea edx, [ecx + 1]
cmp edx, dword [eax + 0x44]
jbe 0x51def6
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51e2f1
test byte [edx + 0x44], 2
je 0x51decc
mov eax, 0x42
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51deba
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x42
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov byte [ecx], 0x2f
mov eax, dword [ebp - 0x14]
inc dword [eax + 0x3c]
jmp 0x51df9d
mov ecx, dword [eax + 0x3c]
lea edx, [ecx + 4]
cmp edx, dword [eax + 0x44]
jbe 0x51df82
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51e310
test byte [edx + 0x44], 2
je 0x51df58
mov eax, 0x42
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51df46
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x42
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
test byte [ebp + 0x10], 0x20
je 0x51df90
mov dword [ecx], 0x646e6524
jmp 0x51df96
mov dword [ecx], 0x444e4524
mov eax, dword [ebp - 0x14]
add dword [eax + 0x3c], 4
cmp esi, 0xfffffffb
jne 0x51e029
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x70]
test ebx, ebx
je 0x51e05a
mov ecx, dword [eax + 0x38]
cmp ebx, ecx
mov edx, dword [eax + 0x44]
ja 0x51dfcd
mov eax, ebx
sub eax, ecx
add eax, edx
cmp ecx, eax
jb 0x51dfd3
jmp 0x51f262
jb 0x51dfdf
cmp ebx, edx
jae 0x51dfdf
sub edx, ecx
push edx
push ecx
push ebx
call fcn.00551f20
jmp 0x51dfe9
sub edx, ecx
push edx
push ecx
push ebx
call fcn.005a35a0
add esp, 0xc
mov eax, dword [ebp - 0x14]
push dword [eax + 0x38]
call fcn.00505200
add esp, 4
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x70]
mov esi, dword [edx + 0x38]
mov dword [edx + 0x38], eax
sub esi, eax
mov ecx, dword [ebp - 0x14]
sub dword [ecx + 0x3c], esi
mov ebx, dword [ebp - 0x14]
sub dword [ebx + 0x44], esi
mov edi, dword [ebp - 0x14]
sub dword [edi + 0x48], esi
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x70], 0
mov eax, dword [ebp - 0x14]
jmp 0x51e05a
push dword [ebp - 0x14]
call fcn.00508d70
add esp, 4
test eax, eax
jne 0x51e0f9
mov eax, dword [ebp - 0x14]
add dword [eax + 0x98], 1
adc dword [eax + 0x9c], 0
mov edx, dword [ebp - 0x14]
and byte [edx + 0x16f], 0xfb
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x51e0d4
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51e32f
test byte [edx + 0x44], 2
je 0x51e0af
mov dword [edx + 0x38], ecx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ebx, dword [eax + 0x18]
mov ecx, dword [edx + 0x10]
mov dword [ebx + 0x3c], ecx
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x64]
test eax, eax
je 0x51e09c
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
mov esp, ebp
pop ebp
ret
push ecx
movzx edx, byte [eax + 0x16c]
push ecx
and edx, 7
push edx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push dword [eax + 0x100]
call fcn.00505780
add esp, 4
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov dword [edx + 4], 0
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e349
test byte [edx + 0x44], 2
je 0x51e13b
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51e12e
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ebx, dword [eax + 0x70]
test ebx, ebx
je 0x51e1da
mov ecx, dword [eax + 0x38]
cmp ebx, ecx
mov edx, dword [eax + 0x44]
ja 0x51e180
mov eax, ebx
sub eax, ecx
add eax, edx
cmp ecx, eax
jb 0x51e186
jmp 0x51f26f
jb 0x51e192
cmp ebx, edx
jae 0x51e192
sub edx, ecx
push edx
push ecx
push ebx
call fcn.00551f20
jmp 0x51e19c
sub edx, ecx
push edx
push ecx
push ebx
call fcn.005a35a0
add esp, 0xc
mov eax, dword [ebp - 0x14]
push dword [eax + 0x38]
call fcn.00505200
add esp, 4
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x70]
mov esi, dword [edx + 0x38]
mov dword [edx + 0x38], eax
sub esi, eax
mov ecx, dword [ebp - 0x14]
sub dword [ecx + 0x3c], esi
mov ebx, dword [ebp - 0x14]
sub dword [ebx + 0x44], esi
mov edi, dword [ebp - 0x14]
sub dword [edi + 0x48], esi
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x70], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51e249
test byte [edx + 0x44], 2
je 0x51e21f
mov eax, 0x1b
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51e20d
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x1b
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x1b
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
mov edx, 0x1b
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ebx, eax
mov eax, dword [ebp - 0x14]
call fcn.005221c0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e2d7
test byte [edx + 0x44], 2
je 0x51e2b2
mov dword [edx + 0x38], ebx
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], ebx
mov esi, dword [ebp - 0x14]
mov edx, dword [esi + 0x64]
test edx, edx
je 0x51e2a3
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov eax, ebx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [ecx + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push ebx
push ebx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
mov edx, 0x42
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
mov edx, 0x42
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
push ecx
push ecx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
call fcn.005221c0
test eax, eax
je 0x51e3cf
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e3de
test byte [edx + 0x44], 2
je 0x51e3aa
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51e39d
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + 0x168]
jmp 0x51de6f
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 1
lea ecx, [ebp + 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00521d20
test eax, eax
jne 0x51e41d
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1c8], eax
jmp 0x51dddd
mov ebx, eax
mov eax, dword [ebp - 0x14]
call fcn.005221c0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e48c
test byte [edx + 0x44], 2
je 0x51e467
mov dword [edx + 0x38], ebx
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], ebx
mov esi, dword [ebp - 0x14]
mov edx, dword [esi + 0x64]
test edx, edx
je 0x51e458
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov eax, ebx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [ecx + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push ebx
push ebx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
mov eax, 0x42
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ebx, eax
mov eax, dword [ebp - 0x14]
call fcn.005221c0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e54e
test byte [edx + 0x44], 2
je 0x51e529
mov dword [edx + 0x38], ebx
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], ebx
mov esi, dword [ebp - 0x14]
mov edx, dword [esi + 0x64]
test edx, edx
je 0x51e51a
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov eax, ebx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [ecx + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push ebx
push ebx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ebx, eax
mov eax, dword [ebp - 0x14]
call fcn.005221c0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e5d7
test byte [edx + 0x44], 2
je 0x51e5b2
mov dword [edx + 0x38], ebx
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], ebx
mov esi, dword [ebp - 0x14]
mov edx, dword [esi + 0x64]
test edx, edx
je 0x51e5a3
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov eax, ebx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [ecx + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push ebx
push ebx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov dword [eax + 0x124], 0x1388
add eax, 0x78
push eax
push 0
push 0x4e20
call fcn.00505140
add esp, 0xc
test eax, eax
je 0x51dd33
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51e679
test byte [edx + 0x44], 2
je 0x51e654
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51e647
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 1
mov eax, dword [ebp - 0x14]
call fcn.005221f0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xd8], 0
jg 0x51e7b8
mov ebx, dword [eax + 0x70]
test ebx, ebx
je 0x51e72a
mov ecx, dword [eax + 0x38]
cmp ebx, ecx
mov edx, dword [eax + 0x44]
ja 0x51e6d0
mov eax, ebx
sub eax, ecx
add eax, edx
cmp ecx, eax
jb 0x51e6d6
jmp 0x51f27c
jb 0x51e6e2
cmp ebx, edx
jae 0x51e6e2
sub edx, ecx
push edx
push ecx
push ebx
call fcn.00551f20
jmp 0x51e6ec
sub edx, ecx
push edx
push ecx
push ebx
call fcn.005a35a0
add esp, 0xc
mov eax, dword [ebp - 0x14]
push dword [eax + 0x38]
call fcn.00505200
add esp, 4
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x70]
mov esi, dword [edx + 0x38]
mov dword [edx + 0x38], eax
sub esi, eax
mov ecx, dword [ebp - 0x14]
sub dword [ecx + 0x3c], esi
mov ebx, dword [ebp - 0x14]
sub dword [ebx + 0x44], esi
mov edi, dword [ebp - 0x14]
sub dword [edi + 0x48], esi
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x70], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51e799
test byte [edx + 0x44], 2
je 0x51e76f
mov eax, 0x1b
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51e75d
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x1b
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x1b
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
mov edx, 0x1b
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x3c]
mov edx, 1
mov byte [ecx], 0x20
mov ebx, dword [ebp - 0x14]
inc dword [ebx + 0x3c]
mov eax, dword [ebp - 0x14]
call fcn.005221f0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xd8], 0
jg 0x51dd33
mov ebx, dword [eax + 0x70]
test ebx, ebx
je 0x51e85b
mov ecx, dword [eax + 0x38]
cmp ebx, ecx
mov edx, dword [eax + 0x44]
ja 0x51e801
mov eax, ebx
sub eax, ecx
add eax, edx
cmp ecx, eax
jb 0x51e807
jmp 0x51f289
jb 0x51e813
cmp ebx, edx
jae 0x51e813
sub edx, ecx
push edx
push ecx
push ebx
call fcn.00551f20
jmp 0x51e81d
sub edx, ecx
push edx
push ecx
push ebx
call fcn.005a35a0
add esp, 0xc
mov eax, dword [ebp - 0x14]
push dword [eax + 0x38]
call fcn.00505200
add esp, 4
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x70]
mov esi, dword [edx + 0x38]
mov dword [edx + 0x38], eax
sub esi, eax
mov ecx, dword [ebp - 0x14]
sub dword [ecx + 0x3c], esi
mov ebx, dword [ebp - 0x14]
sub dword [ebx + 0x44], esi
mov edi, dword [ebp - 0x14]
sub dword [edi + 0x48], esi
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x70], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x51e8ca
test byte [edx + 0x44], 2
je 0x51e8a0
mov eax, 0x1b
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51e88e
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x1b
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, 0x1b
push edx
movzx ecx, byte [eax + 0x16c]
push edx
and ecx, 7
push ecx
push 0xffffffffffffffff
push eax
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
mov edx, 0x1b
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0xe8], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51e96a
test byte [eax + 0x44], 2
je 0x51e940
mov edx, 0x26
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x18]
mov dword [ecx + 0x3c], edx
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51e92e
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x26
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, 0x26
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
mov eax, 0x26
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x51e9a3
mov eax, 0xffffffff
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
jmp 0x51e8e9
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
jmp 0x51d016
mov eax, dword [ebx + 0x13c]
test eax, eax
mov edx, dword [ebx + 0x38]
jne 0x51e9c0
mov eax, 0x20000
mov ecx, dword [ebx + 0x40]
sub ecx, edx
mov dword [ebp - 0x1c8], ecx
cmp ecx, eax
ja 0x51e9fe
push 0
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x1c8]
push edx
push dword [ebx + 0xe4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
mov eax, 0xffffffff
je 0x51e9f6
mov eax, 1
mov dword [ebp - 0x1c4], eax
jmp 0x51ea75
mov edi, ecx
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c], esi
mov esi, edx
push 0
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x1c4]
push esi
push dword [ebx + 0xe4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x51ea3a
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x1c4], 0xffffffff
jmp 0x51ea75
mov eax, dword [ebx + 0x13c]
test eax, eax
mov ecx, dword [ebp - 0x3c]
jne 0x51ea4c
mov eax, 0x20000
sub edi, ecx
add esi, ecx
cmp edi, eax
jae 0x51ea60
mov dword [ebp - 0x1c4], edi
test edi, edi
jne 0x51ea64
jmp 0x51ea68
test edi, edi
je 0x51ea68
test ecx, ecx
ja 0x51ea0e
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x1c4], 1
mov eax, dword [ebp - 0x1c8]
xor edi, edi
cdq
add eax, dword [ebx + 0xc0]
mov ecx, dword [ebx + 0x38]
mov dword [ebx + 0x40], ecx
adc edx, dword [ebx + 0xc4]
add ecx, dword [ebx + 0xf8]
and byte [ebx + 0x16d], 0xfb
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0xa8], edi
mov dword [ebx + 0xac], edi
mov dword [ebx + 0xc0], eax
mov dword [ebx + 0xc4], edx
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0xbc], edx
cmp dword [ebp - 0x1c4], 0xffffffff
je 0x51eae1
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0xb0]
mov eax, dword [ebx + 0xb4]
jmp 0x51cfed
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx + 0xe8], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x51eb5f
test byte [eax + 0x44], 2
je 0x51eb35
mov edx, 0x26
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x18]
mov dword [ecx + 0x3c], edx
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x51eb23
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x64], edx
mov eax, 0x26
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, 0x26
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
mov eax, 0x26
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
movzx eax, byte [ecx + 0x168]
mov edi, dword [ebp - 0x1c4]
and eax, 0xfffffffe
shr edi, 7
or eax, edi
mov byte [ecx + 0x168], al
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x1c], esi
movzx esi, byte [ebp + 0x12]
shr esi, 2
and esi, 1
movzx ecx, byte [edi + 0x168]
add esi, esi
and ecx, 0xfffffffd
or ecx, esi
mov esi, edx
shr esi, 3
mov byte [edi + 0x168], cl
and esi, 1
mov edi, dword [ebp - 0x14]
movzx eax, byte [edi + 0x168]
lea ecx, [esi*4]
and eax, 0xfffffffb
or eax, ecx
mov byte [edi + 0x168], al
mov eax, edx
mov edi, dword [ebp - 0x14]
shr eax, 2
and eax, 1
movzx ecx, byte [edi + 0x168]
shl eax, 3
and ecx, 0xfffffff7
or ecx, eax
mov byte [edi + 0x168], cl
mov ecx, edx
mov edi, dword [ebp - 0x14]
shr ecx, 6
and ecx, 1
movzx eax, byte [edi + 0x168]
shl ecx, 4
and eax, 0xffffffef
or eax, ecx
mov byte [edi + 0x168], al
mov eax, esi
mov edi, dword [ebp - 0x14]
shl eax, 5
shl esi, 3
movzx ecx, byte [edi + 0x168]
and ecx, 0xffffffdf
or ecx, eax
mov byte [edi + 0x168], cl
mov ecx, edx
mov edi, dword [ebp - 0x14]
shr ecx, 4
and ecx, 1
movzx eax, byte [edi + 0x171]
shl ecx, 2
and eax, 0xfffffffb
or eax, ecx
mov byte [edi + 0x171], al
mov eax, dword [ebp - 0x14]
shr edx, 5
and edx, 1
movzx ecx, byte [eax + 0x171]
and ecx, 0xfffffff7
or ecx, esi
mov esi, edx
mov byte [eax + 0x171], cl
mov edi, dword [ebp - 0x14]
shl esi, 6
shl edx, 7
movzx eax, byte [edi + 0x168]
and eax, 0xffffffbf
or eax, esi
mov byte [edi + 0x168], al
mov edi, ebx
mov esi, dword [ebp - 0x14]
shr edi, 1
and edi, 1
movzx ecx, byte [esi + 0x168]
and ecx, 0x7f
or ecx, edx
mov edx, ebx
mov byte [esi + 0x168], cl
and edx, 1
mov esi, dword [ebp - 0x14]
shl edi, 5
shr ebx, 2
movzx eax, byte [esi + 0x169]
and ebx, 3
and eax, 0xfffffffe
add ebx, ebx
or eax, edx
mov byte [esi + 0x169], al
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
movzx ecx, byte [edx + 0x171]
and ecx, 0xffffffdf
or ecx, edi
mov byte [edx + 0x171], cl
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 0x169]
and eax, 0xfffffff9
or eax, ebx
mov ebx, 1
push ebx
push 4
mov byte [edx + 0x169], al
push ebx
push dword [ebp - 0x14]
call fcn.004f9160
add esp, 0x10
test eax, eax
je 0x51ed7f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51ed8e
test byte [edx + 0x44], 2
je 0x51ed5a
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51ed4d
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + 0x169]
jmp 0x51cd15
push ecx
push eax
push eax
push 2
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x14]
movzx ecx, byte [esi + 0x16c]
and ecx, 0xfffffffe
or ecx, dword [ebp - 0x3c]
mov byte [esi + 0x16c], cl
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c4]
shr ecx, 7
movzx eax, byte [edi + 0x16c]
and eax, 0xfffffffd
or eax, dword [ebp - 0x28]
mov byte [edi + 0x16c], al
mov esi, dword [ebp - 0x14]
movzx edi, byte [ebp + 0x12]
movzx eax, byte [esi + 0x168]
and eax, 0xfffffffe
or eax, ecx
mov byte [esi + 0x168], al
mov eax, edi
mov esi, dword [ebp - 0x14]
shr eax, 2
and eax, 1
movzx ecx, byte [esi + 0x168]
add eax, eax
and ecx, 0xfffffffd
or ecx, eax
mov byte [esi + 0x168], cl
mov ecx, dword [ebp - 0x14]
shr edi, 1
and edi, 0xffffffe0
movzx eax, byte [ecx + 0x16e]
and eax, 0xffffff9f
or eax, edi
mov edi, edx
mov byte [ecx + 0x16e], al
mov esi, dword [ebp - 0x14]
shl edi, 7
movzx ecx, byte [esi + 0x16e]
and ecx, 0x7f
or ecx, edi
mov byte [esi + 0x16e], cl
mov esi, edx
mov edi, dword [ebp - 0x14]
shr esi, 3
and esi, 1
movzx eax, byte [edi + 0x16f]
and eax, 0xfffffff7
or eax, dword [ebp - 0x1c8]
mov byte [edi + 0x16f], al
lea ecx, [esi*4]
mov edi, dword [ebp - 0x14]
movzx eax, byte [edi + 0x168]
and eax, 0xfffffffb
or eax, ecx
mov byte [edi + 0x168], al
mov eax, edx
mov edi, dword [ebp - 0x14]
shr eax, 2
and eax, 1
movzx ecx, byte [edi + 0x168]
shl eax, 3
and ecx, 0xfffffff7
or ecx, eax
mov byte [edi + 0x168], cl
mov ecx, edx
mov edi, dword [ebp - 0x14]
shr ecx, 6
and ecx, 1
movzx eax, byte [edi + 0x168]
shl ecx, 4
and eax, 0xffffffef
or eax, ecx
mov byte [edi + 0x168], al
mov eax, esi
mov edi, dword [ebp - 0x14]
shl eax, 5
shl esi, 3
movzx ecx, byte [edi + 0x168]
and ecx, 0xffffffdf
or ecx, eax
mov byte [edi + 0x168], cl
mov ecx, edx
mov edi, dword [ebp - 0x14]
shr ecx, 4
and ecx, 1
movzx eax, byte [edi + 0x171]
shl ecx, 2
and eax, 0xfffffffb
or eax, ecx
mov byte [edi + 0x171], al
mov eax, dword [ebp - 0x14]
shr edx, 5
and edx, 1
movzx ecx, byte [eax + 0x171]
and ecx, 0xfffffff7
or ecx, esi
mov esi, edx
mov byte [eax + 0x171], cl
mov edi, dword [ebp - 0x14]
shl esi, 6
shl edx, 7
movzx eax, byte [edi + 0x168]
and eax, 0xffffffbf
or eax, esi
mov byte [edi + 0x168], al
mov edi, ebx
mov esi, dword [ebp - 0x14]
shr edi, 1
and edi, 1
movzx ecx, byte [esi + 0x168]
and ecx, 0x7f
or ecx, edx
mov edx, ebx
mov byte [esi + 0x168], cl
and edx, 1
mov esi, dword [ebp - 0x14]
shl edi, 5
shr ebx, 2
movzx eax, byte [esi + 0x169]
and ebx, 3
and eax, 0xfffffffe
add ebx, ebx
or eax, edx
mov byte [esi + 0x169], al
lea esi, [ebp + 0x14]
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + 0x171]
and ecx, 0xffffffdf
or ecx, edi
mov byte [edx + 0x171], cl
lea ecx, [ebp - 0x38]
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 0x169]
and eax, 0xfffffff9
or eax, ebx
mov byte [edx + 0x169], al
lea edx, [ebp - 0x1c0]
mov ebx, dword [ebp - 0x14]
push edx
push ecx
or byte [ebx + 0x16a], 0x40
lea ebx, [ebp + 0x18]
mov eax, dword [ebp - 0x14]
push ebx
push esi
mov esi, dword [ebp - 0x1c]
mov dword [eax + 0x60], str.Internal_NML_Write_or_ENCODE
mov dword [eax + 0x88], 0
call fcn.00510550
add esp, 0x10
test eax, eax
je 0x51f050
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51f216
test byte [edx + 0x44], 2
je 0x51f02b
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51f01e
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x34]
test edx, edx
mov eax, dword [ebp - 0x2c]
jg 0x51f05f
mov edx, 0
test eax, eax
mov dword [ebp - 0x34], edx
jg 0x51f06b
mov eax, 0
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x30], 5
je 0x51f24a
mov edx, dword [ebp - 0x14]
mov dword [edx + 0xf8], eax
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x60], str.Internal_NML_Write
mov eax, dword [ebp - 0x38]
mov dword [edx + 0x70], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x34]
mov dword [ecx + 0x8c], edx
mov edi, dword [ebp - 0x14]
lea ebx, [edi + 0x38]
push ebx
push 0
push dword [edi + 0x8c]
call fcn.00505140
add esp, 0xc
test eax, eax
je 0x51f11f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x51f230
test byte [edx + 0x44], 2
je 0x51f0fa
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x51f0ed
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ecx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ecx
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
push dword [eax + 0x8c]
push dword [eax + 0x70]
push dword [eax + 0x38]
call fcn.005a35a0
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x38]
mov dword [edx + 0x3c], eax
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x3c]
add ecx, dword [ebx + 0xf8]
mov dword [ebx + 0x44], ecx
mov eax, dword [ebp - 0x14]
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x48], edi
mov edx, dword [ebp - 0x14]
push dword [edx + 0xf8]
push 0x20
push dword [edx + 0x3c]
call fcn.005a3600
add esp, 0x18
mov eax, dword [ebp - 0x1c0]
cmp eax, 8
jne 0x51f1b5
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x51f18d
mov eax, dword [ebp - 0x34]
cdq
idiv ecx
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xd8], eax
jmp 0x51f19a
mov eax, dword [ebp - 0x14]
mov dword [eax + 0xd8], 0
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov dword [edx + 0xfc], eax
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + 0x169]
jmp 0x51cd15
cmp eax, 6
jne 0x51f1fa
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x51f1d2
mov eax, dword [ebp - 0x34]
cdq
idiv ecx
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xd8], eax
jmp 0x51f1df
mov eax, dword [ebp - 0x14]
mov dword [eax + 0xd8], 0
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov dword [edx + 0xfc], eax
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + 0x169]
jmp 0x51cd15
mov eax, dword [ebp - 0x14]
mov dword [eax + 0xd8], 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + 0x169]
jmp 0x51cd15
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
mov dword [eax + 0xf8], edx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x60], str.NML_ENCODE
jmp 0x51f08b
cmp ebx, ecx
jae 0x51dfcf
jmp 0x51dfdf
cmp ebx, ecx
jae 0x51e182
jmp 0x51e192
cmp ebx, ecx
jae 0x51e6d2
jmp 0x51e6e2
cmp ebx, ecx
jae 0x51e803
jmp 0x51e813