Function at 0x56d450
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1570
call fcn.00612dc0
mov eax, dword [0x68b740]
xor eax, esp
mov dword [esp + 0x156c], eax
push ebx
push esi
mov esi, dword [esp + 0x157c]
movzx eax, byte [esi + 3]
xor ebx, ebx
sub eax, ebx
push edi
mov edi, ecx
je 0x56d4f8
sub eax, 1
jne case.default.0x56d506
mov eax, dword [esi + 0xc]
cmp eax, ebx
jle case.default.0x56d506
add eax, 1
push eax
add esi, 0x10
lea eax, [esp + 0x64]
push esi
push eax
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
lea ecx, [esp + 0x6c]
push 0x63bc40
push ecx
call dword [sym.imp.MSVCR80.dll_strstr]
add esp, 0x14
cmp eax, ebx
je 0x56d4dc
add eax, 1
mov byte [eax - 1], bl
je 0x56d4dc
push ebx
push eax
push str.OnCall
lea edx, [esp + 0x6c]
push edx
mov ecx, edi
call fcn.0056abc0
jmp case.default.0x56d506
push ebx
push 0x63abb8
push str.OnCall
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call fcn.0056abc0
jmp case.default.0x56d506
movzx eax, byte [esi + 4]
cmp eax, 0x20
ja case.default.0x56d506
push ebp
jmp dword [eax*4 + 0x56e9b0]
push ebx
push ebx
add esi, 0x10
push esi
push 0x8d
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
push 0xff
lea ecx, [esp + 0x69]
push ebx
push ecx
mov byte [esp + 0x70], bl
call sub.MSVCR80.dll_memset
push 0x300
lea edx, [esp + 0x174]
push ebx
push edx
call sub.MSVCR80.dll_memset
mov edi, dword [esi + 0xc]
add esp, 0x18
cmp edi, ebx
jle case.0x56d506.1
push 0x3ff
lea eax, [esp + 0x4cd]
push ebx
push eax
mov byte [esp + 0x4d4], bl
call sub.MSVCR80.dll_memset
push 0x4b3
lea ecx, [esp + 0x8d9]
push ebx
push ecx
mov byte [esp + 0x8e0], bl
call sub.MSVCR80.dll_memset
add esp, 0x18
cmp byte [esi + 6], bl
jne 0x56d62b
mov ebp, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add edi, 1
push edi
lea edx, [esi + 0x10]
push edx
lea eax, [esp + 0x4d0]
push eax
call ebp
lea ecx, [esp + 0x4d4]
push 0x64eb14
push ecx
call fcn.00545b00
mov edi, eax
add esp, 0x14
cmp edi, ebx
je case.0x56d506.1
push edi
mov byte [esi + 5], bl
call fcn.00567210
push 0x4b4
lea edx, [esp + 0x8d0]
push edx
lea eax, [esp + 0x4d4]
push eax
add edi, 3
call fcn.005cbea0
add esp, 0x10
test eax, eax
push pe_nt_image_headers32
je 0x56d617
lea ecx, [esp + 0x8cc]
push ecx
lea edx, [esp + 0x6c]
push edx
call ebp
add esp, 0xc
jmp 0x56d676
lea eax, [esp + 0x4cc]
push eax
lea ecx, [esp + 0x6c]
push ecx
call ebp
add esp, 0xc
jmp 0x56d676
mov eax, dword [esi + 0x10]
push pe_nt_image_headers32
push 0x3e8
lea edx, [esp + 0xd84]
push edx
push eax
call fcn.005cbe40
mov edi, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
push eax
lea ecx, [esp + 0x6c]
push ecx
call edi
mov edx, dword [esi + 0xc]
sub edx, 3
push edx
lea eax, [esi + 0x14]
push eax
lea ecx, [esp + 0x4dc]
push ecx
call edi
add esp, 0x18
lea edi, [esp + 0x4cb]
lea edx, [esp + 0x164]
xor ebp, ebp
mov dword [esp + 0x10], edx
push 0x64eb14
push edi
call fcn.00545b00
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x56d6f6
push ebx
call fcn.00567210
push 0x4b4
lea eax, [esp + 0x8d0]
push eax
push edi
add ebx, 3
call fcn.005cbea0
add esp, 0x10
test eax, eax
je 0x56d6ce
mov edx, dword [esp + 0x10]
push 0x4b4
lea ecx, [esp + 0x8cc]
push ecx
push edx
jmp 0x56d6d9
mov eax, dword [esp + 0x10]
push pe_nt_image_headers32
push edi
push eax
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add dword [esp + 0x1c], 0x100
add ebp, 1
add esp, 0xc
cmp ebp, 3
mov edi, ebx
jl 0x56d683
jmp 0x56d741
push 0x4b4
lea ecx, [esp + 0x8cc]
push ecx
push edi
call fcn.005cbea0
add esp, 0xc
shl ebp, 8
test eax, eax
je 0x56d72a
push 0x4b4
lea edx, [esp + 0x8cc]
push edx
lea eax, [esp + ebp + 0x16c]
push eax
jmp 0x56d738
push pe_nt_image_headers32
push edi
lea ecx, [esp + ebp + 0x16c]
push ecx
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
movzx edx, byte [esi + 7]
push 0
push 0
lea eax, [esp + 0x6c]
push eax
push 0x4e
mov dword [0x6e1db0], edx
mov dword [0x6e1db8], 3
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
cmp dword [esi + 0xc], ebx
jle case.0x56d506.1
mov al, byte [esi + 5]
test al, al
ja 0x56d790
push 0x510
call dword [sym.imp.MSVCR80.dll_malloc]
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x56d7af
movzx ecx, al
sub ecx, 1
imul ecx, ecx, 0x104
add ecx, 0x510
push ecx
call dword [sym.imp.MSVCR80.dll_malloc]
mov ebx, eax
mov dword [esp + 0x18], eax
mov edx, dword [esi + 8]
add esp, 4
mov dword [ebx + 0x408], edx
mov dword [ebx + 0x404], 0
cmp byte [esi + 6], 0
jne 0x56d873
mov eax, dword [esi + 0xc]
mov ebp, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add eax, 1
push eax
lea ecx, [esi + 0x10]
push ecx
lea edx, [esp + 0x4d0]
push edx
call ebp
lea eax, [esp + 0x4d4]
push 0x64eb14
push eax
call dword [sym.imp.MSVCR80.dll_strstr]
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x56d811
mov byte [esi + 5], al
mov dword [ebx + 0x404], eax
jmp 0x56d81d
push edi
call fcn.00567210
add esp, 4
add edi, 3
push 0x400
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x4d0]
push edx
call fcn.005cbea0
add esp, 0xc
test eax, eax
push 0x400
je 0x56d847
lea eax, [esp + 0x68]
push eax
jmp 0x56d84f
lea ecx, [esp + 0x4cc]
push ecx
push ebx
call ebp
mov eax, ebx
add esp, 0xc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56d860
sub eax, edx
mov dword [ebx + 0x400], eax
jmp 0x56d8d3
mov eax, dword [esi + 0x10]
push 0x400
push 0x3e8
lea edx, [esp + 0xd84]
push edx
push eax
call fcn.005cbe40
mov edi, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
push eax
push ebx
call edi
mov eax, ebx
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56d8a3
sub eax, edx
mov dword [ebx + 0x400], eax
mov ecx, dword [esi + 0xc]
sub ecx, 3
push ecx
lea edx, [esi + 0x14]
push edx
lea eax, [esp + 0x4d0]
push eax
call edi
add esp, 0xc
lea edi, [esp + 0x4c8]
cmp byte [esi + 5], 0
mov dword [esp + 0x10], 0
jbe 0x56d9d4
mov ebp, dword [esp + 0x14]
add ebp, 0x40c
nop
push 0x64eb14
push edi
call dword [sym.imp.MSVCR80.dll_strstr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x56d963
push ebx
call fcn.00567210
push 0x400
lea ecx, [esp + 0x6c]
push ecx
push edi
add ebx, 3
call fcn.005cbea0
add esp, 0x10
test eax, eax
push pe_nt_image_headers32
je 0x56d931
lea edx, [esp + 0x68]
push edx
jmp 0x56d932
push edi
push ebp
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x100], 0xffffffff
movzx ecx, byte [esi + 5]
add eax, 1
add esp, 0xc
add ebp, 0x104
cmp eax, ecx
mov edi, ebx
mov dword [esp + 0x10], eax
jl 0x56d8f0
jmp 0x56d9d0
push 0x400
lea edx, [esp + 0x68]
push edx
push edi
call fcn.005cbea0
mov ebp, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
push pe_nt_image_headers32
je 0x56d999
mov ecx, dword [esp + 0x18]
mov eax, ebp
imul eax, eax, 0x104
lea edx, [esp + 0x68]
lea ebx, [eax + ecx]
push edx
jmp 0x56d9a9
mov edx, dword [esp + 0x18]
mov ecx, ebp
imul ecx, ecx, 0x104
lea ebx, [ecx + edx]
push edi
lea eax, [ebx + 0x40c]
push eax
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
mov ecx, dword [esp + 0x20]
add esp, 0xc
add ebp, 1
mov dword [ebx + 0x50c], 0xffffffff
mov dword [ecx + 0x404], ebp
mov ebx, dword [esp + 0x14]
movzx edx, byte [esi + 7]
push 0
push 0
mov dword [0x6e1db0], edx
mov eax, dword [ebx + 0x404]
push ebx
push 0x40
mov dword [0x6e1db8], eax
call fcn.00538940
push ebx
call dword [sym.imp.MSVCR80.dll_free]
add esp, 0x14
jmp case.0x56d506.1
cmp dword [esi + 0xc], ebx
jle case.0x56d506.1
mov al, byte [esi + 5]
test al, al
ja 0x56da1b
push 0x30c
jmp 0x56da28
movzx ecx, al
add ecx, 2
imul ecx, ecx, 0x104
push ecx
call dword [sym.imp.MSVCR80.dll_malloc]
mov ebp, eax
add esp, 4
mov dword [ebp + 0x204], ebx
cmp byte [esi + 6], bl
jne 0x56daef
mov edx, dword [esi + 0xc]
mov ebx, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add edx, 1
push edx
lea eax, [esi + 0x10]
push eax
lea ecx, [esp + 0x4d0]
push ecx
call ebx
lea eax, [esp + 0x4d4]
add esp, 0xc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56da70
sub eax, edx
cmp byte [esi + eax + 0x11], cl
lea edi, [esi + eax + 0x11]
jne 0x56da92
mov byte [esi + 5], cl
mov dword [ebp + 0x204], 0
push 0x400
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x4d0]
push eax
call fcn.005cbea0
add esp, 0xc
test eax, eax
push 0x200
je 0x56dabc
lea ecx, [esp + 0x68]
push ecx
jmp 0x56dac4
lea edx, [esp + 0x4cc]
push edx
push ebp
call ebx
mov eax, ebp
add esp, 0xc
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56dad0
sub eax, edx
push 0
push eax
push ebp
call sub.engine.dll_TEncodeText
add esp, 0xc
mov dword [ebp + 0x200], eax
jmp 0x56db5b
mov ecx, dword [esi + 0x10]
push 0x200
push 0x3e8
lea eax, [esp + 0xd84]
push eax
push ecx
call fcn.005cbe40
add esp, 0xc
push eax
push ebp
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
mov eax, ebp
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56db20
sub eax, edx
push ebx
push eax
push ebp
call sub.engine.dll_TEncodeText
mov dword [ebp + 0x200], eax
mov edx, dword [esi + 0xc]
sub edx, 3
push edx
lea eax, [esi + 0x14]
push eax
lea ecx, [esp + 0x4dc]
push ecx
call sub.MSVCR80.dll_memcpy
add esp, 0x18
lea edi, [esp + 0x4c8]
cmp byte [esi + 5], 0
mov dword [esp + 0x14], 0
jbe 0x56dc26
lea edx, [ebp + 0x208]
mov dword [esp + 0x10], edx
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56db80
sub eax, edx
lea ebx, [eax + edi + 1]
push 0x400
lea eax, [esp + 0x68]
push eax
push edi
call fcn.005cbea0
add esp, 0xc
test eax, eax
push pe_nt_image_headers32
je 0x56dbb7
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x68]
push ecx
push edx
jmp 0x56dbbd
mov eax, dword [esp + 0x14]
push edi
push eax
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add dword [ebp + 0x204], 1
add esp, 0xc
cmp byte [ebx], 0
je 0x56dc11
mov ecx, ebx
sub ecx, esi
sub ecx, 0x10
cmp ecx, dword [esi + 0xc]
jge 0x56dc11
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x100], 0xffffffff
movzx edx, byte [esi + 5]
add eax, 1
add ecx, 0x104
cmp eax, edx
mov edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
jl 0x56db77
jmp 0x56dc26
mov eax, dword [esp + 0x14]
imul eax, eax, 0x104
mov dword [eax + ebp + 0x308], 0xffffffff
movzx eax, byte [esi + 7]
push 0
push 0
mov dword [0x6e1db0], eax
mov ecx, dword [ebp + 0x204]
push ebp
push 0x16
mov dword [0x6e1db8], ecx
call fcn.00538940
push ebp
call dword [sym.imp.MSVCR80.dll_free]
add esp, 0x14
jmp case.0x56d506.1
movzx edi, byte [esi + 5]
cmp edi, ebx
movzx edx, byte [esi + 6]
mov dword [esp + 0x18], edx
jle case.0x56d506.1
xor ecx, ecx
mov eax, edi
mov edx, 0x144
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00612c66
imul edi, edi, 0x144
push edi
mov ebx, eax
xor ebp, ebp
push ebp
push ebx
mov dword [esp + 0x24], ebx
call sub.MSVCR80.dll_memset
mov eax, dword [esi + 0xc]
add eax, 1
push eax
call fcn.00612c66
mov ecx, dword [esi + 0xc]
add ecx, 1
push ecx
lea edx, [esi + 0x10]
mov edi, eax
push edx
push edi
mov dword [esp + 0x3c], edi
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0x20
cmp byte [esi + 5], 0
mov dword [esp + 0x10], ebp
jbe 0x56deea
lea ecx, [ecx]
push 0x64eb14
push edi
call fcn.00545b00
add esp, 8
test eax, eax
mov dword [esp + 0x2c], eax
je 0x56de01
mov edx, eax
push edx
call fcn.00567210
add edx, 3
add esp, 4
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], edx
jne 0x56dd43
push 0x400
lea eax, [esp + 0x4cc]
push eax
push edi
call fcn.005cbea0
add esp, 0xc
test eax, eax
push pe_nt_image_headers32
je 0x56dd36
lea ecx, [esp + 0x4cc]
push ecx
push ebx
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
jmp 0x56dd73
push edi
push ebx
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
jmp 0x56dd73
push 0x800
lea edx, [esp + 0xd80]
push edx
push edi
call dword [sym.imp.MSVCR80.dll_atoi]
add esp, 4
push eax
call fcn.005cbe40
add esp, 0xc
mov edx, ebx
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x56dd65
movzx eax, byte [esi + 5]
sub eax, 1
cmp ebp, eax
lea edi, [ebx + 0x100]
mov edx, edi
jge 0x56dda0
mov ecx, dword [0x6dfee0]
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x56dd90
jmp 0x56ddbe
mov ecx, dword [0x6dfee4]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x56dda6
cmp dword [esi + 8], 1
jne 0x56ddbe
mov byte [edi + 0x42], 1
mov eax, ebx
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x56ddc3
sub eax, ecx
push 0
push eax
push ebx
call sub.engine.dll_TEncodeText
add dword [esp + 0x1c], 1
mov word [edi + 0x40], ax
movzx ecx, byte [esi + 5]
mov edi, dword [esp + 0x38]
add ebp, 1
add esp, 0xc
add ebx, 0x144
cmp ebp, ecx
jl 0x56dcd0
jmp 0x56dee6
cmp dword [esp + 0x18], 0
jne 0x56de5a
push 0x400
lea edx, [esp + 0x4cc]
push edx
push edi
call fcn.005cbea0
imul ebp, ebp, 0x144
add esp, 0xc
test eax, eax
push pe_nt_image_headers32
je 0x56de47
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x4cc]
add ebp, eax
push ecx
push ebp
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
jmp 0x56de96
mov edx, dword [esp + 0x18]
add ebp, edx
push edi
push ebp
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0xc
jmp 0x56de96
push 0x800
lea eax, [esp + 0xd80]
push eax
push edi
call dword [sym.imp.MSVCR80.dll_atoi]
add esp, 4
push eax
call fcn.005cbe40
imul ebp, ebp, 0x144
mov ecx, dword [esp + 0x20]
add esp, 0xc
add ebp, ecx
mov edx, ebp
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x56de88
mov ecx, dword [0x6dfee4]
lea edx, [ebp + 0x100]
mov edi, 1
mov al, byte [ecx]
mov byte [edx], al
add ecx, edi
add edx, edi
test al, al
jne 0x56dea7
cmp dword [esi + 8], edi
jne 0x56debf
mov byte [ebp + 0x142], 1
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56dec4
sub eax, edx
push 0
push eax
push ebp
call sub.engine.dll_TEncodeText
add esp, 0xc
add dword [esp + 0x10], edi
mov word [ebp + 0x140], ax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x56defb
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x10]
movzx edx, byte [esi + 7]
push 0
push eax
push ebx
push 0x17
mov dword [0x6e1db4], edx
call fcn.00538940
add esp, 0x10
test ebx, ebx
je case.0x56d506.1
push ebx
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
jmp case.0x56d506.1
mov edi, dword [esi + 0xc]
cmp edi, ebx
jle case.0x56d506.1
cmp byte [esi + 6], bl
jne 0x56dfb7
lea ecx, [edi - 4]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [esp + 0x4d0]
push eax
call sub.MSVCR80.dll_memcpy
push 0x400
lea ecx, [esp + 0x8d8]
push ecx
lea edx, [esp + 0x4dc]
push edx
mov byte [esp + edi + 0x4dc], bl
call fcn.005cbea0
add esp, 0x18
test eax, eax
push pe_nt_image_headers32
je 0x56df9b
lea eax, [esp + 0x8cc]
push eax
lea ecx, [esp + 0x6c]
push ecx
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + ecx + 0xc]
jmp 0x56dfce
lea edx, [esp + 0x4cc]
push edx
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + ecx + 0xc]
jmp 0x56dfce
mov ecx, dword [esi + 0x10]
push pe_nt_image_headers32
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.005cbe40
mov edx, dword [esp + 0x74]
lea eax, [esp + 0x70]
mov dword [esp + 0x174], edx
add esp, 0xc
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56dfe0
sub eax, edx
push ebx
push eax
lea eax, [esp + 0x6c]
push eax
call sub.engine.dll_TEncodeText
push ebx
push ebx
lea ecx, [esp + 0x78]
push ecx
push 0x24
mov dword [esp + 0x180], eax
call fcn.00538940
add esp, 0x1c
jmp case.0x56d506.1
mov edx, dword [edi + 0x114]
mov eax, dword [esi + 0x10]
imul edx, edx, 0x113b8
mov ecx, dword [0x12c5540]
mov dword [edx + ecx + 0x1140], eax
mov edx, dword [edi + 0x114]
mov eax, dword [esi + 0x14]
imul edx, edx, 0x113b8
mov ecx, dword [0x12c5540]
mov dword [edx + ecx + 0x1148], eax
mov edx, dword [edi + 0x114]
mov eax, dword [esi + 0x14]
imul edx, edx, 0x113b8
mov ecx, dword [0x12c5540]
mov dword [edx + ecx + 0x1144], eax
jmp case.0x56d506.1
movzx ecx, byte [esi + 6]
cmp ecx, 1
mov eax, dword [esi + 0x10]
jne 0x56e0a3
mov edx, dword [0x8e48f4]
mov ecx, dword [0x12c5540]
push eax
mov eax, dword [edx + 0x8c44]
imul eax, eax, 0x113b8
lea ecx, [eax + ecx + 0x110]
call fcn.005821c0
jmp case.0x56d506.1
cmp ecx, 2
jne case.0x56d506.1
mov edx, dword [esi + 0x14]
push eax
mov eax, dword [0x8e48f4]
mov ecx, dword [eax + 0x8c44]
imul ecx, ecx, 0x113b8
push edx
mov edx, dword [0x12c5540]
lea ecx, [ecx + edx + 0x110]
call fcn.00567230
jmp case.0x56d506.1
mov eax, dword [esi + 0x10]
mov ecx, dword [0x8e48f4]
mov dword [ecx + 0x8ba0], eax
jmp case.0x56d506.1
mov edi, dword [esi + 0xc]
cmp edi, ebx
jle case.0x56d506.1
cmp byte [esi + 6], bl
jne 0x56e154
push edi
add esi, 0x10
lea edx, [esp + 0x4cc]
push esi
push edx
call sub.MSVCR80.dll_memcpy
push 0x400
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x4dc]
push ecx
mov byte [esp + edi + 0x4e0], bl
call fcn.005cbea0
add esp, 0x18
test eax, eax
jne 0x56e16a
jmp 0x56e140
mov cl, byte [esp + eax + 0x4c8]
mov byte [esp + eax + 0x64], cl
add eax, 1
test cl, cl
jne 0x56e140
jmp 0x56e16a
mov eax, dword [esi + 0x10]
push 0x400
lea edx, [esp + 0x68]
push edx
push eax
call fcn.005cbe40
add esp, 0xc
push 0x400
lea ecx, [esp + 0x68]
mov al, 2
push ecx
lea edx, [esp + 0x8d0]
push edx
mov byte [esp + 0xcd8], al
mov byte [esp + 0xcd9], al
mov byte [esp + 0xcda], bl
mov byte [esp + 0xcdb], bl
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
push ebx
push ebx
lea eax, [esp + 0x8dc]
push eax
push 0x1f
call fcn.00538940
add esp, 0x1c
jmp case.0x56d506.1
push ebx
push ebx
push ebx
push 0x7d
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
push ebx
push ebx
push ebx
push 0x7e
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
movzx ecx, byte [esi + 6]
push ebx
push ebx
push ecx
push 0x7f
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
movzx edx, byte [esi + 6]
mov dword [0x1614cec], edx
jmp case.0x56d506.1
mov edi, dword [esi + 0xc]
cmp edi, ebx
jle case.0x56d506.1
movzx eax, byte [esi + 5]
sub eax, ebx
je 0x56e3e9
sub eax, 1
je 0x56e2e9
sub eax, 1
jne case.0x56d506.1
cmp byte [esi + 6], bl
mov ebp, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
mov dword [esp + 0x64], 2
jne 0x56e252
add edi, 0xfffffff1
push edi
lea eax, [esi + 0x10]
push eax
lea ecx, [esp + 0x8d0]
push ecx
call ebp
jmp 0x56e268
mov eax, dword [esi + 0x10]
push 0x400
lea edx, [esp + 0x8cc]
push edx
push eax
call fcn.005cbe40
add esp, 0xc
push 0x200
lea ecx, [esp + 0x8cc]
push ecx
lea edx, [esp + 0x70]
push edx
call ebp
lea eax, [esp + 0x74]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56e290
sub eax, edx
push ebx
push eax
lea eax, [esp + 0x70]
push eax
call sub.engine.dll_TEncodeText
mov dword [esp + 0x274], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + esi]
add eax, esi
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 0xc]
push ebx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x78]
push ecx
push 0x20
mov dword [esp + 0x44], edx
call fcn.00538940
add esp, 0x1c
jmp case.0x56d506.1
cmp byte [esi + 6], bl
mov dword [esp + 0x64], 1
jne 0x56e357
lea edx, [edi - 4]
push edx
lea eax, [esi + 0x10]
push eax
lea ecx, [esp + 0x4d0]
push ecx
call sub.MSVCR80.dll_memcpy
push 0x400
lea edx, [esp + 0x8d8]
push edx
lea eax, [esp + 0x4dc]
push eax
mov byte [esp + edi + 0x4dc], bl
call fcn.005cbea0
add esp, 0x18
test eax, eax
jne 0x56e370
jmp 0x56e340
mov cl, byte [esp + eax + 0x4c8]
mov byte [esp + eax + 0x8c8], cl
add eax, 1
test cl, cl
jne 0x56e340
jmp 0x56e370
mov edx, dword [esi + 0x10]
push 0x400
lea ecx, [esp + 0x8cc]
push ecx
push edx
call fcn.005cbe40
add esp, 0xc
push 0x200
lea eax, [esp + 0x8cc]
push eax
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
lea eax, [esp + 0x74]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56e392
sub eax, edx
push ebx
push eax
lea edx, [esp + 0x70]
push edx
call sub.engine.dll_TEncodeText
mov dword [esp + 0x274], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov cx, word [esi + eax + 0xc]
push ebx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x78]
push eax
push 0x20
mov word [esp + 0x44], cx
call fcn.00538940
add esp, 0x1c
jmp case.0x56d506.1
cmp byte [esi + 6], bl
mov dword [esp + 0x64], ebx
jne 0x56e447
push edi
add esi, 0x10
lea ecx, [esp + 0x8cc]
push esi
push ecx
call sub.MSVCR80.dll_memcpy
push 0x400
lea edx, [esp + 0x4d8]
push edx
lea eax, [esp + 0x8dc]
push eax
mov byte [esp + edi + 0x8e0], bl
call fcn.005cbea0
add esp, 0x18
test eax, eax
jne 0x56e460
lea esp, [esp]
mov cl, byte [esp + eax + 0x8c8]
mov byte [esp + eax + 0x4c8], cl
add eax, 1
test cl, cl
jne 0x56e430
jmp 0x56e460
mov edx, dword [esi + 0x10]
push 0x400
lea ecx, [esp + 0x4cc]
push ecx
push edx
call fcn.005cbe40
add esp, 0xc
push 0x200
lea eax, [esp + 0x4cc]
push eax
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
lea eax, [esp + 0x74]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56e482
sub eax, edx
push ebx
push eax
lea edx, [esp + 0x70]
push edx
call sub.engine.dll_TEncodeText
push ebx
mov dword [esp + 0x278], eax
push ebx
lea eax, [esp + 0x78]
push eax
push 0x20
call fcn.00538940
add esp, 0x1c
jmp case.0x56d506.1
mov edi, dword [esi + 0xc]
push edi
add esi, 0x10
lea ecx, [esp + 0x68]
push esi
push ecx
call sub.MSVCR80.dll_memcpy
add esp, 0xc
lea edx, [esp + 0x64]
push edx
mov ecx, 0x13348fc
mov byte [esp + edi + 0x68], bl
call fcn.005acca0
jmp case.0x56d506.1
mov ecx, dword [0x8e48f4]
add ecx, 0xecc4
call fcn.005b8d90
jmp case.0x56d506.1
push ebx
push ebx
push ebx
push 0x95
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
push ebx
push 1
push ebx
push 0x2a
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
mov eax, dword [esi + 8]
push ebx
push 1
push ebx
push 0x56
mov dword [0x8e48ec], eax
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
mov ecx, dword [0x8e48f4]
add ecx, 0xecc4
call fcn.005b8db0
jmp case.0x56d506.1
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], ecx
call dword [sym.imp.MSVCR80.dll__gmtime32]
mov esi, eax
add esp, 4
mov ecx, 9
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x40]
push eax
push ecx
mov ecx, 0x6e23e0
call fcn.00568720
jmp case.0x56d506.1
add esi, 0x10
push esi
mov ecx, 0x1605e90
call fcn.005b70a0
movzx edx, word [esi + 0x41]
mov eax, dword [esi + 0x43]
push ebx
push edx
push eax
push 0x8c
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
cmp word [esi + 0x10], 1
lea eax, [esi + 0x10]
jae case.0x56d506.1
push eax
call fcn.005685a0
add esp, 4
jmp case.0x56d506.1
mov al, byte [esi + 6]
test al, al
jne 0x56e5fa
push ebx
push ebx
push 1
push 0x33
call fcn.00538940
mov ecx, dword [esi + 0x18]
push ebx
push ebx
push ecx
push 0x30
call fcn.00538940
add esp, 0x20
jmp case.0x56d506.1
cmp al, 0xff
jne 0x56e610
push ebx
push ebx
push ebx
push 0x33
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
mov al, byte [esi + 0x16]
cmp al, 4
jne 0x56e62c
mov edx, dword [esi + 0x18]
push ebx
push ebx
push edx
push 0x30
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
ja case.0x56d506.1
movzx eax, al
movzx ecx, byte [esi + eax*2 + 0x10]
push ebx
push ecx
push eax
push 0x31
call fcn.00538940
mov edi, dword [esi + 0x20]
add esp, 0x10
cmp edi, 0xfffffffe
je 0x56e742
mov edx, dword [esi + 0x10]
mov ax, word [esi + 0x14]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x30], edx
push ecx
lea edx, [esp + 0x34]
push edx
mov ecx, 0x6852d0
mov dword [esp + 0x24], ebx
mov word [esp + 0x3c], ax
mov dword [esp + 0x40], 3
mov dword [esp + 0x44], 0x3e8
call fcn.00568680
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jne 0x56e69b
push ebx
push ebx
push edi
jmp 0x56e738
sub eax, 1
je 0x56e70b
sub eax, 1
je 0x56e6e0
sub eax, 1
je 0x56e6c6
mov eax, dword [0x6dfef4]
lea edx, [esp + 0x464]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x56e6b8
jmp 0x56e72b
mov eax, dword [esi + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [0x6dfeec]
push eax
push ecx
push edx
lea eax, [esp + 0x470]
push eax
jmp 0x56e722
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x1c]
push ecx
lea edx, [eax + 2]
push edx
mov edx, dword [0x6dfef0]
lea ecx, [eax + 1]
push ecx
push eax
push edx
lea eax, [esp + 0x478]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x18
jmp 0x56e72b
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [0x6dfee8]
push ecx
push edx
push eax
lea ecx, [esp + 0x470]
push ecx
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
mov eax, dword [esi + 0x20]
push ebx
lea edx, [esp + 0x468]
push edx
push eax
push 0x32
call fcn.00538940
add esp, 0x10
mov ecx, dword [esi + 0x18]
push ebx
push ebx
push ecx
push 0x30
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
cmp byte [esi + 6], bl
mov byte [esp + 0x64], bl
push 0x200
lea eax, [esp + 0x88]
jne 0x56e7a4
mov ebp, dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
lea edx, [esi + 0x10]
push edx
push eax
call ebp
lea eax, [esp + 0x90]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56e786
sub eax, edx
push 0x20
lea ecx, [esi + eax + 0x11]
push ecx
lea edx, [esp + 0x6c]
push edx
call ebp
add esp, 0xc
jmp 0x56e7c2
mov ecx, dword [esi + 0x10]
push eax
push ecx
call fcn.005cbe40
push 0x20
lea edx, [esi + 0x14]
push edx
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.engine.dll_void___cdecl_g_StrCpyLen_char___char_const___int_]
add esp, 0x18
xor ecx, ecx
cmp dword [esi + 8], ebx
lea eax, [esp + 0x84]
setne cl
lea edx, [eax + 1]
xor ecx, dword [edi + 0x4d88]
and ecx, 1
xor dword [edi + 0x4d88], ecx
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x56e7e3
sub eax, edx
push ebx
push eax
lea edx, [esp + 0x8c]
push edx
call sub.engine.dll_TEncodeText
mov eax, dword [esi + 8]
push ebx
push eax
lea ecx, [esp + 0x78]
push ecx
push 0x3e
call fcn.00538940
add esp, 0x1c
jmp case.0x56d506.1
mov ebp, dword [esi + 8]
mov esi, dword [esi + 0x10]
push esi
mov ecx, 0x12c5598
call fcn.00580850
mov edi, eax
cmp edi, ebx
jle case.0x56d506.1
cmp ebp, ebx
ja 0x56e859
mov edx, dword [0x12c5540]
imul edi, edi, 0x113b8
push 0x60
lea eax, [edi + edx + 0x14cc]
push ebx
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
jmp case.0x56d506.1
push ebp
call fcn.00559e60
add esp, 4
test eax, eax
je case.0x56d506.1
push ebp
call fcn.00559e60
mov ecx, dword [0x12c5540]
add esp, 4
imul edi, edi, 0x113b8
lea edi, [edi + ecx + 0x14cc]
mov ecx, 0x18
mov esi, eax
rep movsd dword es:[edi], dword [esi]
jmp case.0x56d506.1
mov edx, dword [esi + 0x11]
mov eax, dword [0x8e48f4]
mov dword [eax + 0xdab0], edx
mov ecx, dword [esi + 0x15]
mov edx, dword [0x8e48f4]
mov dword [edx + 0xdac0], ecx
mov eax, dword [esi + 0x19]
mov ecx, dword [0x8e48f4]
push ebx
push ebx
add esi, 0x25
push esi
push 0x68
mov dword [ecx + 0xdac4], eax
call fcn.00538940
add esp, 0x10
jmp case.0x56d506.1
mov al, byte [esi + 6]
cmp al, 0xe1
lea edi, [esi + 0x10]
ja case.0x56d506.1
xor ebx, ebx
test al, al
jbe case.0x56d506.1
lea ecx, [ecx]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [0x8e48f4]
add edi, 4
push ecx
mov ecx, dword [0x12c5540]
push eax
mov eax, dword [edx + 0x8c44]
imul eax, eax, 0x113b8
lea ecx, [eax + ecx + 0x110]
add edi, 4
call fcn.005833d0
movzx edx, byte [esi + 6]
add ebx, 1
cmp ebx, edx
jl 0x56e8f0
jmp case.0x56d506.1
movzx eax, byte [esi + 6]
mov ecx, dword [0x8e48f4]
mov edi, dword [esi + 0x10]
add ecx, 0x8b30
cmp eax, 1
push edi
jne 0x56e94e
call fcn.00566ee0
jmp case.0x56d506.1
cmp eax, 2
je 0x56e965
call fcn.00566ee0
mov ecx, dword [0x8e48f4]
push edi
add ecx, 0x8b30
call fcn.005699d0
jmp case.0x56d506.1
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
push esi
mov ecx, 0x12c5598
call fcn.00580850
cmp eax, ebx
jle case.0x56d506.1
mov ecx, dword [0x12c5540]
imul eax, eax, 0x113b8
mov dword [eax + ecx + 0x14c8], edi
pop ebp
mov ecx, dword [esp + 0x1578]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00612c78
add esp, 0x1570
ret 4