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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5db925
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x578
mov eax, dword [0x644904]
mov ecx, dword [0x64581c]
push ebx
mov dword [ebp - 0x10], eax
mov eax, dword [0x645800]
cmp eax, ecx
push esi
push edi
jne 0x51b05d
mov ebx, dword [ebp + 8]
mov dl, byte [ebx + 0xf1]
xor eax, eax
mov ecx, 0x100
lea edi, [ebp - 0x530]
rep stosd dword es:[edi], eax
movzx eax, dl
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [ebx + 0xf2]
lea edi, [ebp - 0x530]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [ebp - 0x530]
cmp cl, 1
jne 0x519410
mov edi, dword [ebx + 0x14]
mov ecx, dword [0x645ae0]
push edi
mov dword [ebp - 0x548], edi
call fcn.0049fd80
mov esi, eax
test esi, esi
jne 0x518f5a
push 0xf0
call fcn.005c8833
add esp, 4
mov dword [ebp - 0x538], eax
test eax, eax
mov dword [ebp - 4], esi
je 0x518f40
mov ecx, eax
call fcn.00432b00
jmp 0x518f42
xor eax, eax
mov ecx, dword [0x645ae0]
push 0
push eax
push edi
mov dword [ebp - 4], 0xffffffff
mov esi, eax
call fcn.004a8850
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esi + 8], ecx
mov ecx, ebx
mov dword [esi + 4], eax
call fcn.00518e30
test eax, eax
je 0x51b05d
mov dword [esi], 2
test byte [ebx + 0x18], 1
je 0x518f87
mov eax, dword [ebx + 0x20]
mov dword [esi + 0xc], eax
test byte [ebx + 0x18], 2
je 0x518f93
mov ecx, dword [ebx + 0x24]
mov dword [esi + 0x10], ecx
test byte [ebx + 0x18], 4
je 0x518fa6
lea edx, [ebx + 0x29]
push edx
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
test byte [ebx + 0x18], 8
je 0x518fb2
mov eax, dword [ebx + 0x48]
mov dword [esi + 0x14], eax
test byte [ebx + 0x18], 0x10
je 0x518fc4
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x50]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
test byte [ebx + 0x18], 0x20
je 0x518fd0
mov ecx, dword [ebx + 0x54]
mov dword [esi + 0x34], ecx
test byte [ebx + 0x19], 2
je 0x518fdc
mov edx, dword [ebx + 0x64]
mov dword [esi + 0x44], edx
test byte [ebx + 0x19], 4
je 0x518fe9
movzx eax, byte [ebx + 0x68]
mov dword [esi + 0x48], eax
test byte [ebx + 0x19], 8
je 0x518ff6
movzx ecx, byte [ebx + 0x69]
mov dword [esi + 0x4c], ecx
mov al, byte [ebx + 0x18]
mov cl, 0x80
test cl, al
je 0x519005
mov edx, dword [ebx + 0x5c]
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0x3c]
xor eax, eax
cmp edx, eax
jge 0x519011
mov dword [esi + 0x3c], eax
test byte [ebx + 0x19], 1
je 0x51901d
mov edx, dword [ebx + 0x60]
mov dword [esi + 0x40], edx
test byte [ebx + 0x19], 0x10
je 0x519029
mov edx, dword [ebx + 0x6c]
mov dword [esi + 0x60], edx
test byte [ebx + 0x19], 0x20
je 0x519035
mov edx, dword [ebx + 0x70]
mov dword [esi + 0x64], edx
test byte [ebx + 0x19], 0x40
je 0x519041
mov edx, dword [ebx + 0x74]
mov dword [esi + 0x68], edx
test byte [ebx + 0x19], cl
je 0x51904c
mov edx, dword [ebx + 0x78]
mov dword [esi + 0x6c], edx
test byte [ebx + 0x1a], 1
je 0x519058
mov edx, dword [ebx + 0x7c]
mov dword [esi + 0x70], edx
test byte [ebx + 0x1a], 2
je 0x519067
mov edx, dword [ebx + 0x80]
mov dword [esi + 0x74], edx
test byte [ebx + 0x1a], 4
je 0x519076
mov edx, dword [ebx + 0x84]
mov dword [esi + 0x78], edx
test byte [ebx + 0x1a], 8
je 0x519085
mov edx, dword [ebx + 0x88]
mov dword [esi + 0x7c], edx
test byte [ebx + 0x1a], 0x10
je 0x519099
mov dx, word [ebx + 0x8c]
mov word [esi + 0x80], dx
test byte [ebx + 0x1a], 0x20
je 0x5190a8
mov edx, dword [ebx + 0x90]
mov dword [esi + 0x58], edx
test byte [ebx + 0x1a], 0x40
je 0x5190b7
mov edx, dword [ebx + 0x94]
mov dword [esi + 0x5c], edx
test byte [ebx + 0x18], 0x40
je 0x5190c3
mov edx, dword [ebx + 0x58]
mov dword [esi + 0x38], edx
cmp dword [esi + 0x38], eax
jge 0x5190cb
mov dword [esi + 0x38], eax
test byte [ebx + 0x1a], cl
je 0x5190dc
mov eax, dword [ebx + 0x98]
mov dword [esi + 0x84], eax
test byte [ebx + 0x1b], 1
je 0x5190ee
mov edx, dword [ebx + 0x9c]
mov dword [esi + 0x88], edx
test byte [ebx + 0x1b], 2
je 0x519100
mov eax, dword [ebx + 0xa0]
mov dword [esi + 0x8c], eax
test byte [ebx + 0x1b], 4
je 0x519112
mov edx, dword [ebx + 0xa4]
mov dword [esi + 0x90], edx
test byte [ebx + 0x1b], 8
je 0x519124
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x94], eax
test byte [ebx + 0x1b], 0x10
je 0x519136
mov edx, dword [ebx + 0xac]
mov dword [esi + 0x98], edx
test byte [ebx + 0x1b], 0x20
je 0x519148
mov eax, dword [ebx + 0xb0]
mov dword [esi + 0x9c], eax
test byte [ebx + 0x1b], 0x40
je 0x51915a
mov edx, dword [ebx + 0xb4]
mov dword [esi + 0xa0], edx
test byte [ebx + 0x1b], cl
je 0x51916b
mov eax, dword [ebx + 0xb8]
mov dword [esi + 0xa4], eax
test byte [ebx + 0x1c], 1
je 0x51917d
mov ecx, dword [ebx + 0xbc]
mov dword [esi + 0xa8], ecx
test byte [ebx + 0x1c], 2
je 0x51918f
mov edx, dword [ebx + 0xc0]
mov dword [esi + 0xac], edx
test byte [ebx + 0x1e], 2
je 0x5191a1
mov eax, dword [ebx + 0x4f4]
mov dword [esi + 0xb0], eax
test byte [ebx + 0x1c], 4
je 0x5191b3
mov ecx, dword [ebx + 0xc4]
mov dword [esi + 0xb4], ecx
test byte [ebx + 0x1e], 4
je 0x5191c5
mov edx, dword [ebx + 0x4f8]
mov dword [esi + 0xb8], edx
test byte [ebx + 0x1c], 8
je 0x5191eb
mov al, byte [ebx + 0xc8]
movzx ecx, al
and ecx, 1
test al, 2
mov dword [esi + 0xbc], ecx
jne 0x5191eb
mov dword [esi + 0xb8], 0xbf800000
lea edx, [ebx + 0xca]
mov edi, 0x24
mov dword [ebp - 0x534], edx
lea esp, [esp]
test edi, edi
jl 0x519258
cmp edi, 0x36
jge 0x519258
mov ecx, edi
and ecx, 0x80000007
jns 0x519218
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, 1
shl al, cl
mov ecx, edi
sar ecx, 3
and al, byte [ecx + ebx + 0x18]
neg al
sbb eax, eax
neg eax
test eax, eax
je 0x519258
lea edx, [edi - 0x24]
cmp edx, 0xd
jae 0x519258
mov eax, dword [ebp - 0x534]
test eax, eax
je 0x519258
mov edx, dword [ebp - 0x548]
push eax
lea ecx, [edi - 0x24]
push ecx
mov ecx, dword [0x645ae0]
push edx
call fcn.0049fe00
mov eax, dword [ebp - 0x534]
add eax, 2
inc edi
mov dword [ebp - 0x534], eax
lea eax, [edi - 0x24]
cmp eax, 0xd
jl 0x519200
test byte [ebx + 0x1e], 8
mov dword [ebp - 0x53c], 0xffffffff
je 0x51930b
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x519297
push eax
call sub.msvcr71.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edi, edi
lea ecx, [ebx + 0x4fc]
mov dword [esi + 0xdc], edi
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
mov dword [ebp - 0x540], ecx
test edi, edi
jl 0x5193e1
cmp edi, 0xa
jge 0x5193e1
mov edx, dword [ebp - 0x540]
mov eax, dword [edx]
test eax, eax
jl 0x5192f6
mov dword [ebp - 0x53c], eax
lea eax, [ebp - 0x53c]
push eax
lea ecx, [esi + 0xd8]
mov dword [ebp - 0x538], 0
call fcn.00432a90
mov ecx, dword [ebp - 0x540]
inc edi
add ecx, 4
cmp edi, 0xa
mov dword [ebp - 0x540], ecx
jl 0x5192b7
test byte [ebx + 0x1e], 0x10
je 0x519325
mov eax, dword [ebx + 0x524]
mov dword [esi + 0xe8], eax
xor eax, eax
mov dword [esi + 0xec], eax
mov ecx, dword [0x646074]
mov edx, dword [ecx]
push 0xa2
call dword [edx + 0x54]
mov bx, word [ebx + 0x52a]
xor eax, eax
mov byte [ebp - 0x130], 0
mov ecx, pe_nt_image_headers32
lea edi, [ebp - 0x12f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, bl
push eax
movzx ecx, bh
push ecx
push 0x5f1db0
lea edx, [ebp - 0x130]
push 0x104
push edx
call dword [sym.imp.msvcr71.dll__snprintf]
mov eax, dword [0x6461f8]
add esp, 0x14
test eax, eax
jne 0x5193b3
mov ecx, dword [0x645860]
mov eax, dword [ecx]
push 0x6f
call dword [eax + pe_nt_image_headers32]
test eax, eax
mov dword [0x6461f8], eax
jne 0x5193b3
push 0x5f2730
push 0xe1
push 0x60f500
call dword [sym.imp.tengine.dll_void___cdecl_tThrowAssertException_char_const___int__char_const__]
mov eax, dword [0x6461f8]
add esp, 0xc
mov ecx, dword [esi + 0x10]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
je 0x5193e8
mov eax, dword [eax + 4]
mov ecx, dword [0x646074]
mov edx, dword [ecx]
lea esi, [ebp - 0x130]
push esi
push eax
push 0x257
call dword [edx + 0x48]
jmp 0x51b05d
xor eax, eax
jmp 0x5192d4
mov edi, dword [0x646074]
mov ebx, dword [edi]
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
push eax
push 0x257
mov ecx, edi
call dword [ebx + 0x48]
jmp 0x51b05d
cmp cl, 2
jne 0x519869
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov ecx, eax
mov eax, dword [ebx + 0x14]
mov edx, ecx
shr ecx, 2
lea esi, [ebp - 0x530]
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x645ae0]
push eax
mov dword [ebp - 0x540], eax
call fcn.0049b120
mov esi, eax
test esi, esi
jne 0x51949c
push 0xf0
call fcn.005c8833
add esp, 4
mov dword [ebp - 0x538], eax
test eax, eax
mov dword [ebp - 4], 1
je 0x51947c
mov ecx, eax
call fcn.00432b00
jmp 0x51947e
xor eax, eax
mov ecx, dword [0x645ae0]
push 0
push eax
mov esi, eax
mov eax, dword [ebp - 0x540]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.004a83f0
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esi + 8], ecx
mov ecx, ebx
mov dword [esi + 4], eax
call fcn.00518e30
test eax, eax
je 0x51b05d
mov dword [esi], 2
test byte [ebx + 0x18], 1
je 0x5194c9
mov ecx, dword [ebx + 0x20]
mov dword [esi + 0xc], ecx
test byte [ebx + 0x18], 2
je 0x5194d5
mov edx, dword [ebx + 0x24]
mov dword [esi + 0x10], edx
test byte [ebx + 0x18], 4
je 0x5194e8
lea eax, [ebx + 0x29]
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
test byte [ebx + 0x18], 8
je 0x5194f4
mov ecx, dword [ebx + 0x48]
mov dword [esi + 0x14], ecx
test byte [ebx + 0x18], 0x10
je 0x519506
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x50]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
test byte [ebx + 0x18], 0x20
je 0x519512
mov edx, dword [ebx + 0x54]
mov dword [esi + 0x34], edx
test byte [ebx + 0x19], 2
je 0x51951e
mov eax, dword [ebx + 0x64]
mov dword [esi + 0x44], eax
test byte [ebx + 0x19], 4
je 0x51952b
movzx ecx, byte [ebx + 0x68]
mov dword [esi + 0x48], ecx
test byte [ebx + 0x19], 8
je 0x519538
movzx edx, byte [ebx + 0x69]
mov dword [esi + 0x4c], edx
mov al, byte [ebx + 0x18]
mov cl, 0x80
test cl, al
je 0x519547
mov eax, dword [ebx + 0x5c]
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x3c]
xor eax, eax
cmp edx, eax
jge 0x519553
mov dword [esi + 0x3c], eax
test byte [ebx + 0x19], 1
je 0x51955f
mov edx, dword [ebx + 0x60]
mov dword [esi + 0x40], edx
test byte [ebx + 0x19], 0x10
je 0x51956b
mov edx, dword [ebx + 0x6c]
mov dword [esi + 0x60], edx
test byte [ebx + 0x19], 0x20
je 0x519577
mov edx, dword [ebx + 0x70]
mov dword [esi + 0x64], edx
test byte [ebx + 0x19], 0x40
je 0x519583
mov edx, dword [ebx + 0x74]
mov dword [esi + 0x68], edx
test byte [ebx + 0x19], cl
je 0x51958e
mov edx, dword [ebx + 0x78]
mov dword [esi + 0x6c], edx
test byte [ebx + 0x1a], 1
je 0x51959a
mov edx, dword [ebx + 0x7c]
mov dword [esi + 0x70], edx
test byte [ebx + 0x1a], 2
je 0x5195a9
mov edx, dword [ebx + 0x80]
mov dword [esi + 0x74], edx
test byte [ebx + 0x1a], 4
je 0x5195b8
mov edx, dword [ebx + 0x84]
mov dword [esi + 0x78], edx
test byte [ebx + 0x1a], 8
je 0x5195c7
mov edx, dword [ebx + 0x88]
mov dword [esi + 0x7c], edx
test byte [ebx + 0x1a], 0x10
je 0x5195db
mov dx, word [ebx + 0x8c]
mov word [esi + 0x80], dx
test byte [ebx + 0x1a], 0x20
je 0x5195ea
mov edx, dword [ebx + 0x90]
mov dword [esi + 0x58], edx
test byte [ebx + 0x1a], 0x40
je 0x5195f9
mov edx, dword [ebx + 0x94]
mov dword [esi + 0x5c], edx
test byte [ebx + 0x18], 0x40
je 0x519605
mov edx, dword [ebx + 0x58]
mov dword [esi + 0x38], edx
cmp dword [esi + 0x38], eax
jge 0x51960d
mov dword [esi + 0x38], eax
test byte [ebx + 0x1a], cl
je 0x51961e
mov eax, dword [ebx + 0x98]
mov dword [esi + 0x84], eax
test byte [ebx + 0x1b], 1
je 0x519630
mov edx, dword [ebx + 0x9c]
mov dword [esi + 0x88], edx
test byte [ebx + 0x1b], 2
je 0x519642
mov eax, dword [ebx + 0xa0]
mov dword [esi + 0x8c], eax
test byte [ebx + 0x1b], 4
je 0x519654
mov edx, dword [ebx + 0xa4]
mov dword [esi + 0x90], edx
test byte [ebx + 0x1b], 8
je 0x519666
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x94], eax
test byte [ebx + 0x1b], 0x10
je 0x519678
mov edx, dword [ebx + 0xac]
mov dword [esi + 0x98], edx
test byte [ebx + 0x1b], 0x20
je 0x51968a
mov eax, dword [ebx + 0xb0]
mov dword [esi + 0x9c], eax
test byte [ebx + 0x1b], 0x40
je 0x51969c
mov edx, dword [ebx + 0xb4]
mov dword [esi + 0xa0], edx
test byte [ebx + 0x1b], cl
je 0x5196ad
mov eax, dword [ebx + 0xb8]
mov dword [esi + 0xa4], eax
test byte [ebx + 0x1c], 1
je 0x5196bf
mov ecx, dword [ebx + 0xbc]
mov dword [esi + 0xa8], ecx
test byte [ebx + 0x1c], 2
je 0x5196d1
mov edx, dword [ebx + 0xc0]
mov dword [esi + 0xac], edx
test byte [ebx + 0x1e], 2
je 0x5196e3
mov eax, dword [ebx + 0x4f4]
mov dword [esi + 0xb0], eax
test byte [ebx + 0x1c], 4
je 0x5196f5
mov ecx, dword [ebx + 0xc4]
mov dword [esi + 0xb4], ecx
test byte [ebx + 0x1e], 4
je 0x519707
mov edx, dword [ebx + 0x4f8]
mov dword [esi + 0xb8], edx
test byte [ebx + 0x1c], 8
je 0x51972d
mov al, byte [ebx + 0xc8]
movzx ecx, al
and ecx, 1
test al, 2
mov dword [esi + 0xbc], ecx
jne 0x51972d
mov dword [esi + 0xb8], 0xbf800000
lea edx, [ebx + 0xca]
xor edi, edi
mov dword [ebp - 0x534], edx
jmp 0x519740
lea eax, [edi + 0x24]
push eax
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x519774
cmp edi, 0xd
jae 0x519774
mov eax, dword [ebp - 0x534]
test eax, eax
je 0x519774
mov edx, dword [ebp - 0x540]
mov ecx, eax
push ecx
mov ecx, dword [0x645ae0]
push edi
push edx
call fcn.0049b1b0
mov ecx, dword [ebp - 0x534]
inc edi
add ecx, 2
cmp edi, 0xd
mov dword [ebp - 0x534], ecx
jl 0x519740
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x540]
mov ecx, dword [0x645ae0]
push eax
push edi
call fcn.0049b060
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [0x645ae0]
push edi
call fcn.0049b090
test byte [ebx + 0x1e], 8
mov dword [ebp - 0x53c], 0xffffffff
je 0x519842
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x5197d6
push eax
call sub.msvcr71.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edi, edi
lea edx, [ebx + 0x4fc]
mov dword [esi + 0xdc], edi
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
mov dword [ebp - 0x540], edx
test edi, edi
jl 0x519865
cmp edi, 0xa
jge 0x519865
mov eax, dword [ebp - 0x540]
mov eax, dword [eax]
test eax, eax
jl 0x51982d
lea ecx, [ebp - 0x53c]
push ecx
lea ecx, [esi + 0xd8]
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x53c], eax
call fcn.00432a90
mov ecx, dword [ebp - 0x540]
inc edi
add ecx, 4
cmp edi, 0xa
mov dword [ebp - 0x540], ecx
jl 0x5197f6
test byte [ebx + 0x1e], 0x10
je 0x51b05d
mov ebx, dword [ebx + 0x524]
xor eax, eax
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xec], eax
jmp 0x51b05d
xor eax, eax
jmp 0x51980b
cmp cl, 3
jne 0x519d00
xor ecx, ecx
mov byte [ebp - 0x18], cl
mov byte [ebp - 0x17], cl
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 0x16], cl
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [ebp - 0x530]
lea edi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x14]
movzx edx, byte [ebp - 0x17]
movzx eax, byte [ebp - 0x18]
push ecx
push edx
mov dword [ebp - 0x534], ecx
mov ecx, dword [0x645ae0]
push eax
call fcn.004a1180
mov esi, eax
or edi, 0xffffffff
test esi, esi
jne 0x519911
push 0xf0
call fcn.005c8833
add esp, 4
mov dword [ebp - 0x538], eax
test eax, eax
mov dword [ebp - 4], 2
je 0x5198eb
mov ecx, eax
call fcn.00432b00
jmp 0x5198ed
xor eax, eax
mov ecx, dword [0x645ae0]
push 0
push eax
mov esi, eax
mov eax, dword [ebp - 0x534]
push eax
movzx eax, byte [ebp - 0x17]
push eax
movzx eax, byte [ebp - 0x18]
push eax
mov dword [ebp - 4], edi
call fcn.004a88c0
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esi + 8], ecx
mov ecx, ebx
mov dword [esi + 4], eax
call fcn.00518e30
test eax, eax
je 0x51b05d
mov dword [esi], 2
test byte [ebx + 0x18], 1
je 0x51993e
mov ecx, dword [ebx + 0x20]
mov dword [esi + 0xc], ecx
test byte [ebx + 0x18], 2
je 0x51994a
mov edx, dword [ebx + 0x24]
mov dword [esi + 0x10], edx
test byte [ebx + 0x18], 4
je 0x51995d
lea eax, [ebx + 0x29]
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
test byte [ebx + 0x18], 8
je 0x519969
mov ecx, dword [ebx + 0x48]
mov dword [esi + 0x14], ecx
test byte [ebx + 0x18], 0x10
je 0x51997b
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x50]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
test byte [ebx + 0x18], 0x20
je 0x519987
mov edx, dword [ebx + 0x54]
mov dword [esi + 0x34], edx
test byte [ebx + 0x19], 2
je 0x519993
mov eax, dword [ebx + 0x64]
mov dword [esi + 0x44], eax
test byte [ebx + 0x19], 4
je 0x5199a0
movzx ecx, byte [ebx + 0x68]
mov dword [esi + 0x48], ecx
test byte [ebx + 0x19], 8
je 0x5199ad
movzx edx, byte [ebx + 0x69]
mov dword [esi + 0x4c], edx
mov al, byte [ebx + 0x18]
mov cl, 0x80
test cl, al
je 0x5199bc
mov eax, dword [ebx + 0x5c]
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x3c]
xor eax, eax
cmp edx, eax
jge 0x5199c8
mov dword [esi + 0x3c], eax
test byte [ebx + 0x19], 1
je 0x5199d4
mov edx, dword [ebx + 0x60]
mov dword [esi + 0x40], edx
test byte [ebx + 0x19], 0x10
je 0x5199e0
mov edx, dword [ebx + 0x6c]
mov dword [esi + 0x60], edx
test byte [ebx + 0x19], 0x20
je 0x5199ec
mov edx, dword [ebx + 0x70]
mov dword [esi + 0x64], edx
test byte [ebx + 0x19], 0x40
je 0x5199f8
mov edx, dword [ebx + 0x74]
mov dword [esi + 0x68], edx
test byte [ebx + 0x19], cl
je 0x519a03
mov edx, dword [ebx + 0x78]
mov dword [esi + 0x6c], edx
test byte [ebx + 0x1a], 1
je 0x519a0f
mov edx, dword [ebx + 0x7c]
mov dword [esi + 0x70], edx
test byte [ebx + 0x1a], 2
je 0x519a1e
mov edx, dword [ebx + 0x80]
mov dword [esi + 0x74], edx
test byte [ebx + 0x1a], 4
je 0x519a2d
mov edx, dword [ebx + 0x84]
mov dword [esi + 0x78], edx
test byte [ebx + 0x1a], 8
je 0x519a3c
mov edx, dword [ebx + 0x88]
mov dword [esi + 0x7c], edx
test byte [ebx + 0x1a], 0x10
je 0x519a50
mov dx, word [ebx + 0x8c]
mov word [esi + 0x80], dx
test byte [ebx + 0x1a], 0x20
je 0x519a5f
mov edx, dword [ebx + 0x90]
mov dword [esi + 0x58], edx
test byte [ebx + 0x1a], 0x40
je 0x519a6e
mov edx, dword [ebx + 0x94]
mov dword [esi + 0x5c], edx
test byte [ebx + 0x18], 0x40
je 0x519a7a
mov edx, dword [ebx + 0x58]
mov dword [esi + 0x38], edx
cmp dword [esi + 0x38], eax
jge 0x519a82
mov dword [esi + 0x38], eax
test byte [ebx + 0x1a], cl
je 0x519a93
mov eax, dword [ebx + 0x98]
mov dword [esi + 0x84], eax
test byte [ebx + 0x1b], 1
je 0x519aa5
mov edx, dword [ebx + 0x9c]
mov dword [esi + 0x88], edx
test byte [ebx + 0x1b], 2
je 0x519ab7
mov eax, dword [ebx + 0xa0]
mov dword [esi + 0x8c], eax
test byte [ebx + 0x1b], 4
je 0x519ac9
mov edx, dword [ebx + 0xa4]
mov dword [esi + 0x90], edx
test byte [ebx + 0x1b], 8
je 0x519adb
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x94], eax
test byte [ebx + 0x1b], 0x10
je 0x519aed
mov edx, dword [ebx + 0xac]
mov dword [esi + 0x98], edx
test byte [ebx + 0x1b], 0x20
je 0x519aff
mov eax, dword [ebx + 0xb0]
mov dword [esi + 0x9c], eax
test byte [ebx + 0x1b], 0x40
je 0x519b11
mov edx, dword [ebx + 0xb4]
mov dword [esi + 0xa0], edx
test byte [ebx + 0x1b], cl
je 0x519b22
mov eax, dword [ebx + 0xb8]
mov dword [esi + 0xa4], eax
test byte [ebx + 0x1c], 1
je 0x519b34
mov ecx, dword [ebx + 0xbc]
mov dword [esi + 0xa8], ecx
test byte [ebx + 0x1c], 2
je 0x519b46
mov edx, dword [ebx + 0xc0]
mov dword [esi + 0xac], edx
test byte [ebx + 0x1e], 2
je 0x519b58
mov eax, dword [ebx + 0x4f4]
mov dword [esi + 0xb0], eax
test byte [ebx + 0x1c], 4
je 0x519b6a
mov ecx, dword [ebx + 0xc4]
mov dword [esi + 0xb4], ecx
test byte [ebx + 0x1e], 4
je 0x519b7c
mov edx, dword [ebx + 0x4f8]
mov dword [esi + 0xb8], edx
test byte [ebx + 0x1c], 8
je 0x519ba2
mov al, byte [ebx + 0xc8]
movzx ecx, al
and ecx, 1
test al, 2
mov dword [esi + 0xbc], ecx
jne 0x519ba2
mov dword [esi + 0xb8], 0xbf800000
test byte [ebx + 0x1e], 8
mov dword [ebp - 0x53c], edi
je 0x519c1b
lea ecx, [esi + 0xd8]
call fcn.0047bef0
lea edx, [ebx + 0x4fc]
xor edi, edi
mov dword [ebp - 0x540], edx
test edi, edi
jl 0x519cf9
cmp edi, 0xa
jge 0x519cf9
mov eax, dword [ebp - 0x540]
mov eax, dword [eax]
test eax, eax
jl 0x519c06
lea ecx, [ebp - 0x53c]
push ecx
lea ecx, [esi + 0xd8]
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x53c], eax
call fcn.00432a90
mov ecx, dword [ebp - 0x540]
inc edi
add ecx, 4
cmp edi, 0xa
mov dword [ebp - 0x540], ecx
jl 0x519bc7
test byte [ebx + 0x1e], 0x10
je 0x519c35
mov eax, dword [ebx + 0x524]
mov dword [esi + 0xe8], eax
xor eax, eax
mov dword [esi + 0xec], eax
mov esi, 0x24
lea edi, [ebx + 0xca]
test esi, esi
jl 0x519c9c
cmp esi, 0x36
jge 0x519c9c
mov ecx, esi
and ecx, 0x80000007
jns 0x519c58
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, 1
shl al, cl
mov edx, esi
sar edx, 3
and al, byte [edx + ebx + 0x18]
neg al
sbb eax, eax
neg eax
test eax, eax
je 0x519c9c
lea eax, [esi - 0x24]
cmp eax, 0xd
jae 0x519c9c
test edi, edi
je 0x519c9c
mov edx, dword [ebp - 0x534]
movzx eax, byte [ebp - 0x17]
push edi
lea ecx, [esi - 0x24]
push ecx
mov ecx, dword [0x645ae0]
push edx
push eax
movzx eax, byte [ebp - 0x18]
push eax
call fcn.004a1630
add edi, 2
inc esi
lea eax, [esi - 0x24]
cmp eax, 0xd
jl 0x519c40
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x534]
movzx edi, byte [ebp - 0x17]
movzx esi, byte [ebp - 0x18]
push ecx
mov ecx, dword [0x645ae0]
push ebx
push edi
push esi
call fcn.004a1380
mov edx, dword [ebp - 0x1c]
mov ecx, dword [0x645ae0]
push edx
push ebx
push edi
push esi
call fcn.004a12b0
test esi, esi
je 0x51b05d
mov eax, dword [ebp - 0x16]
mov ecx, dword [0x645ae0]
push eax
push ebx
push edi
push esi
call fcn.004a0ca0
jmp 0x51b05d
xor eax, eax
jmp 0x519be4
cmp cl, 5
jne 0x51a05d
mov esi, dword [0x645ae0]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
add esi, 0x47ea8
mov dword [esi + 8], ecx
mov ecx, ebx
mov dword [esi + 4], eax
call fcn.00518e30
test eax, eax
je 0x51b05d
mov dword [esi], 2
test byte [ebx + 0x18], 1
je 0x519d42
mov ecx, dword [ebx + 0x20]
mov dword [esi + 0xc], ecx
test byte [ebx + 0x18], 2
je 0x519d4e
mov edx, dword [ebx + 0x24]
mov dword [esi + 0x10], edx
test byte [ebx + 0x18], 4
je 0x519d61
lea eax, [ebx + 0x29]
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
test byte [ebx + 0x18], 8
je 0x519d6d
mov ecx, dword [ebx + 0x48]
mov dword [esi + 0x14], ecx
test byte [ebx + 0x18], 0x10
je 0x519d7f
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x50]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
test byte [ebx + 0x18], 0x20
je 0x519d8b
mov edx, dword [ebx + 0x54]
mov dword [esi + 0x34], edx
test byte [ebx + 0x19], 2
je 0x519d97
mov eax, dword [ebx + 0x64]
mov dword [esi + 0x44], eax
test byte [ebx + 0x19], 4
je 0x519da4
movzx ecx, byte [ebx + 0x68]
mov dword [esi + 0x48], ecx
test byte [ebx + 0x19], 8
je 0x519db1
movzx edx, byte [ebx + 0x69]
mov dword [esi + 0x4c], edx
mov al, byte [ebx + 0x18]
mov cl, 0x80
test cl, al
je 0x519dc0
mov eax, dword [ebx + 0x5c]
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x3c]
xor eax, eax
cmp edx, eax
jge 0x519dcc
mov dword [esi + 0x3c], eax
test byte [ebx + 0x19], 1
je 0x519dd8
mov edx, dword [ebx + 0x60]
mov dword [esi + 0x40], edx
test byte [ebx + 0x19], 0x10
je 0x519de4
mov edx, dword [ebx + 0x6c]
mov dword [esi + 0x60], edx
test byte [ebx + 0x19], 0x20
je 0x519df0
mov edx, dword [ebx + 0x70]
mov dword [esi + 0x64], edx
test byte [ebx + 0x19], 0x40
je 0x519dfc
mov edx, dword [ebx + 0x74]
mov dword [esi + 0x68], edx
test byte [ebx + 0x19], cl
je 0x519e07
mov edx, dword [ebx + 0x78]
mov dword [esi + 0x6c], edx
test byte [ebx + 0x1a], 1
je 0x519e13
mov edx, dword [ebx + 0x7c]
mov dword [esi + 0x70], edx
test byte [ebx + 0x1a], 2
je 0x519e22
mov edx, dword [ebx + 0x80]
mov dword [esi + 0x74], edx
test byte [ebx + 0x1a], 4
je 0x519e31
mov edx, dword [ebx + 0x84]
mov dword [esi + 0x78], edx
test byte [ebx + 0x1a], 8
je 0x519e40
mov edx, dword [ebx + 0x88]
mov dword [esi + 0x7c], edx
test byte [ebx + 0x1a], 0x10
je 0x519e54
mov dx, word [ebx + 0x8c]
mov word [esi + 0x80], dx
test byte [ebx + 0x1a], 0x20
je 0x519e63
mov edx, dword [ebx + 0x90]
mov dword [esi + 0x58], edx
test byte [ebx + 0x1a], 0x40
je 0x519e72
mov edx, dword [ebx + 0x94]
mov dword [esi + 0x5c], edx
test byte [ebx + 0x18], 0x40
je 0x519e7e
mov edx, dword [ebx + 0x58]
mov dword [esi + 0x38], edx
cmp dword [esi + 0x38], eax
jge 0x519e86
mov dword [esi + 0x38], eax
test byte [ebx + 0x1a], cl
je 0x519e97
mov eax, dword [ebx + 0x98]
mov dword [esi + 0x84], eax
test byte [ebx + 0x1b], 1
je 0x519ea9
mov edx, dword [ebx + 0x9c]
mov dword [esi + 0x88], edx
test byte [ebx + 0x1b], 2
je 0x519ebb
mov eax, dword [ebx + 0xa0]
mov dword [esi + 0x8c], eax
test byte [ebx + 0x1b], 4
je 0x519ecd
mov edx, dword [ebx + 0xa4]
mov dword [esi + 0x90], edx
test byte [ebx + 0x1b], 8
je 0x519edf
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x94], eax
test byte [ebx + 0x1b], 0x10
je 0x519ef1
mov edx, dword [ebx + 0xac]
mov dword [esi + 0x98], edx
test byte [ebx + 0x1b], 0x20
je 0x519f03
mov eax, dword [ebx + 0xb0]
mov dword [esi + 0x9c], eax
test byte [ebx + 0x1b], 0x40
je 0x519f15
mov edx, dword [ebx + 0xb4]
mov dword [esi + 0xa0], edx
test byte [ebx + 0x1b], cl
je 0x519f26
mov eax, dword [ebx + 0xb8]
mov dword [esi + 0xa4], eax
test byte [ebx + 0x1c], 1
je 0x519f38
mov ecx, dword [ebx + 0xbc]
mov dword [esi + 0xa8], ecx
test byte [ebx + 0x1c], 2
je 0x519f4a
mov edx, dword [ebx + 0xc0]
mov dword [esi + 0xac], edx
test byte [ebx + 0x1e], 2
je 0x519f5c
mov eax, dword [ebx + 0x4f4]
mov dword [esi + 0xb0], eax
test byte [ebx + 0x1e], 4
je 0x519f6e
mov ecx, dword [ebx + 0x4f8]
mov dword [esi + 0xb8], ecx
test byte [ebx + 0x1c], 4
je 0x519f80
mov edx, dword [ebx + 0xc4]
mov dword [esi + 0xb4], edx
test byte [ebx + 0x1c], 8
je 0x519fa6
mov al, byte [ebx + 0xc8]
movzx ecx, al
and ecx, 1
test al, 2
mov dword [esi + 0xbc], ecx
jne 0x519fa6
mov dword [esi + 0xb8], 0xbf800000
test byte [ebx + 0x1e], 8
mov dword [ebp - 0x53c], 0xffffffff
je 0x519ff7
lea ecx, [esi + 0xd8]
call fcn.0047bef0
xor edi, edi
push edi
mov ecx, ebx
call fcn.00518da0
test eax, eax
jl 0x519ff1
lea edx, [ebp - 0x53c]
push edx
lea ecx, [esi + 0xd8]
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x53c], eax
call fcn.00432a90
inc edi
cmp edi, 0xa
jl 0x519fc3
test byte [ebx + 0x1e], 0x10
je 0x51a011
mov eax, dword [ebx + 0x524]
mov dword [esi + 0xe8], eax
xor eax, eax
mov dword [esi + 0xec], eax
xor esi, esi
lea eax, [esi + 0x24]
push eax
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51a042
lea ecx, [ebp - 0x541]
push ecx
push esi
mov ecx, ebx
call fcn.00518dc0
test eax, eax
je 0x51a042
mov ecx, dword [0x645ae0]
push eax
push esi
call fcn.0049b2b0
inc esi
cmp esi, 0xd
jl 0x51a013
mov ecx, dword [0x646074]
mov edx, dword [ecx]
push 0xe6
call dword [edx + 0x54]
jmp 0x51b05d
cmp cl, 4
jne 0x51a81a
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
xor esi, esi
mov dword [ebp - 0x53c], eax
mov dword [ebp - 0x538], ecx
mov dword [ebp - 0x534], esi
mov ecx, dword [0x645ae0]
push esi
call fcn.004a0080
mov edi, eax
test edi, edi
je 0x51a0a5
lea edx, [ebp - 0x53c]
push edx
lea ecx, [edi + 4]
call fcn.0043be20
test eax, eax
jne 0x51a0f3
inc esi
cmp esi, 0xa
jl 0x51a080
mov dword [ebp - 0x534], esi
xor esi, esi
mov dword [ebp - 0x534], esi
lea esp, [esp]
mov ecx, dword [0x645ae0]
push esi
call fcn.004a0080
test eax, eax
je 0x51a0e2
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x51a0e2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x51a6ef
inc esi
cmp esi, 0xa
jl 0x51a0c0
mov dword [ebp - 0x534], esi
jmp 0x51b05d
mov dword [ebp - 0x534], esi
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [edi + 8], ecx
mov ecx, ebx
mov dword [ebp - 0x548], edi
mov dword [edi + 4], eax
call fcn.00518e30
test eax, eax
je 0x51b05d
xor eax, eax
mov dword [edi], 2
mov al, byte [ebx + 0x18]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51a136
mov eax, dword [ebx + 0x20]
mov dword [edi + 0xc], eax
xor eax, eax
mov al, byte [ebx + 0x18]
xor esi, esi
and eax, 2
shr eax, 1
cmp eax, esi
je 0x51a14c
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x10], eax
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 4
shr eax, 2
cmp eax, esi
je 0x51a168
lea ecx, [ebx + 0x29]
push ecx
lea ecx, [edi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 8
shr eax, 3
cmp eax, esi
je 0x51a17d
mov eax, dword [ebx + 0x48]
mov dword [edi + 0x14], eax
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 0x10
shr eax, 4
cmp eax, esi
je 0x51a198
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x50]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 0x20
shr eax, 5
cmp eax, esi
je 0x51a1ad
mov eax, dword [ebx + 0x54]
mov dword [edi + 0x34], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 2
shr eax, 1
cmp eax, esi
je 0x51a1c1
mov eax, dword [ebx + 0x64]
mov dword [edi + 0x44], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 4
shr eax, 2
cmp eax, esi
je 0x51a1d7
movzx edx, byte [ebx + 0x68]
mov dword [edi + 0x48], edx
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 8
shr eax, 3
cmp eax, esi
je 0x51a1ed
movzx eax, byte [ebx + 0x69]
mov dword [edi + 0x4c], eax
mov dl, byte [ebx + 0x18]
mov cl, 0x80
and dl, cl
neg dl
sbb edx, edx
neg edx
mov dword [ebp - 0x538], edx
je 0x51a208
mov eax, dword [ebx + 0x5c]
mov dword [edi + 0x3c], eax
cmp dword [edi + 0x3c], esi
jge 0x51a210
mov dword [edi + 0x3c], esi
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51a226
mov eax, dword [ebx + 0x60]
mov dword [edi + 0x40], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 0x10
shr eax, 4
cmp eax, esi
je 0x51a23b
mov eax, dword [ebx + 0x6c]
mov dword [edi + 0x60], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 0x20
shr eax, 5
cmp eax, esi
je 0x51a250
mov eax, dword [ebx + 0x70]
mov dword [edi + 0x64], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 0x40
shr eax, 6
cmp eax, esi
je 0x51a265
mov eax, dword [ebx + 0x74]
mov dword [edi + 0x68], eax
mov dl, byte [ebx + 0x19]
and dl, cl
neg dl
sbb edx, edx
neg edx
mov dword [ebp - 0x538], edx
je 0x51a27e
mov eax, dword [ebx + 0x78]
mov dword [edi + 0x6c], eax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51a294
mov eax, dword [ebx + 0x7c]
mov dword [edi + 0x70], eax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 2
shr eax, 1
cmp eax, esi
je 0x51a2ab
mov eax, dword [ebx + 0x80]
mov dword [edi + 0x74], eax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 4
shr eax, 2
cmp eax, esi
je 0x51a2c3
mov eax, dword [ebx + 0x84]
mov dword [edi + 0x78], eax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 8
shr eax, 3
cmp eax, esi
je 0x51a2db
mov eax, dword [ebx + 0x88]
mov dword [edi + 0x7c], eax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 0x10
shr eax, 4
cmp eax, esi
je 0x51a2f8
mov ax, word [ebx + 0x8c]
mov word [edi + 0x80], ax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 0x20
shr eax, 5
cmp eax, esi
je 0x51a310
mov eax, dword [ebx + 0x90]
mov dword [edi + 0x58], eax
xor eax, eax
mov al, byte [ebx + 0x1a]
and eax, 0x40
shr eax, 6
cmp eax, esi
je 0x51a328
mov eax, dword [ebx + 0x94]
mov dword [edi + 0x5c], eax
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 0x40
shr eax, 6
cmp eax, esi
je 0x51a344
mov eax, dword [ebx + 0x58]
cmp eax, esi
mov dword [edi + 0x38], eax
jge 0x51a344
mov dword [edi + 0x38], esi
mov dl, byte [ebx + 0x1a]
and dl, cl
neg dl
sbb edx, edx
neg edx
mov dword [ebp - 0x538], edx
je 0x51a363
mov eax, dword [ebx + 0x98]
mov dword [edi + 0x84], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51a37f
mov eax, dword [ebx + 0x9c]
mov dword [edi + 0x88], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 2
shr eax, 1
cmp eax, esi
je 0x51a399
mov eax, dword [ebx + 0xa0]
mov dword [edi + 0x8c], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 4
shr eax, 2
cmp eax, esi
je 0x51a3b4
mov eax, dword [ebx + 0xa4]
mov dword [edi + 0x90], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 8
shr eax, 3
cmp eax, esi
je 0x51a3cf
mov eax, dword [ebx + 0xa8]
mov dword [edi + 0x94], eax
xor eax, eax
mov al, byte [ebx + 0x1c]
and eax, 2
shr eax, 1
cmp eax, esi
je 0x51a3e9
mov eax, dword [ebx + 0xc0]
mov dword [edi + 0xac], eax
xor eax, eax
mov al, byte [ebx + 0x1e]
and eax, 2
shr eax, 1
cmp eax, esi
je 0x51a403
mov eax, dword [ebx + 0x4f4]
mov dword [edi + 0xb0], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 0x10
shr eax, 4
cmp eax, esi
je 0x51a41e
mov eax, dword [ebx + 0xac]
mov dword [edi + 0x98], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 0x20
shr eax, 5
cmp eax, esi
je 0x51a439
mov eax, dword [ebx + 0xb0]
mov dword [edi + 0x9c], eax
xor eax, eax
mov al, byte [ebx + 0x1b]
and eax, 0x40
shr eax, 6
cmp eax, esi
je 0x51a454
mov eax, dword [ebx + 0xb4]
mov dword [edi + 0xa0], eax
mov dl, byte [ebx + 0x1b]
and dl, cl
neg dl
sbb edx, edx
neg edx
mov dword [ebp - 0x538], edx
je 0x51a473
mov eax, dword [ebx + 0xb8]
mov dword [edi + 0xa4], eax
xor eax, eax
mov al, byte [ebx + 0x1c]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51a48f
mov eax, dword [ebx + 0xbc]
mov dword [edi + 0xa8], eax
xor eax, eax
mov al, byte [ebx + 0x1c]
and eax, 4
shr eax, 2
cmp eax, esi
je 0x51a4aa
mov eax, dword [ebx + 0xc4]
mov dword [edi + 0xb4], eax
xor eax, eax
mov al, byte [ebx + 0x1e]
and eax, 4
shr eax, 2
cmp eax, esi
je 0x51a4c5
mov ecx, dword [ebx + 0x4f8]
mov dword [edi + 0xb8], ecx
xor eax, eax
mov al, byte [ebx + 0x1c]
and eax, 8
shr eax, 3
cmp eax, esi
je 0x51a4f4
mov al, byte [ebx + 0xc8]
movzx edx, al
and edx, 1
test al, 2
mov dword [edi + 0xbc], edx
jne 0x51a4f4
mov dword [edi + 0xb8], 0xbf800000
xor eax, eax
mov al, byte [ebx + 0x1e]
mov dword [ebp - 0x53c], 0xffffffff
and eax, 8
shr eax, 3
cmp eax, esi
je 0x51a57a
lea ecx, [edi + 0xd8]
call fcn.0047bef0
lea eax, [ebx + 0x4fc]
xor esi, esi
mov dword [ebp - 0x540], eax
test esi, esi
jl 0x51a6fc
cmp esi, 0xa
jge 0x51a6fc
mov ecx, dword [ebp - 0x540]
mov eax, dword [ecx]
test eax, eax
jl 0x51a565
lea edx, [ebp - 0x53c]
push edx
lea ecx, [edi + 0xd8]
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x53c], eax
call fcn.00432a90
mov ecx, dword [ebp - 0x540]
inc esi
add ecx, 4
cmp esi, 0xa
mov dword [ebp - 0x540], ecx
jl 0x51a526
xor eax, eax
mov al, byte [ebx + 0x1e]
and eax, 0x10
shr eax, 4
test eax, eax
je 0x51a59d
mov eax, dword [ebx + 0x524]
mov dword [edi + 0xe8], eax
xor eax, eax
mov dword [edi + 0xec], eax
lea eax, [ebx + 0xca]
xor esi, esi
mov dword [ebp - 0x540], eax
jmp 0x51a5b0
lea ecx, [esi + 0x24]
push ecx
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51a7ec
cmp esi, 0xd
jae 0x51a7ec
mov eax, dword [ebp - 0x540]
test eax, eax
mov dl, byte [esi + ebx + 0xe4]
mov byte [ebp - 0x541], dl
je 0x51a7ec
mov ecx, dword [ebp - 0x534]
push eax
push esi
push ecx
mov ecx, dword [0x645ae0]
call fcn.0049eb20
push 0x5eb0c0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
movzx eax, byte [ebp - 0x541]
dec eax
mov dword [ebp - 4], 3
je 0x51a703
dec eax
jne 0x51a7dc
mov edx, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push esi
push edx
call fcn.0049ecb0
test eax, eax
je 0x51a7dc
mov eax, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push esi
push eax
call fcn.0049ecb0
cmp dword [eax], 0
je 0x51a7dc
mov ecx, dword [ebp - 0x534]
push esi
push ecx
mov ecx, dword [0x645ae0]
call fcn.0049ec60
mov edx, dword [0x645858]
mov ecx, dword [edx]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x538], ecx
push edx
lea ecx, [edi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
mov ecx, dword [0x645858]
push eax
push 0x60f4d8
lea eax, [ebp - 0x568]
push eax
mov eax, dword [ebp - 0x538]
push ecx
call dword [eax + 0x84]
add esp, 0x14
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x568]
mov byte [ebp - 4], 3
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0
push 0x419
push 0x60f500
push 8
sub esp, 0x1c
lea edx, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x538], esp
push edx
jmp 0x51a7c8
mov dword [ebp - 0x534], esi
mov edi, eax
jmp 0x51a0f9
xor eax, eax
jmp 0x51a543
mov eax, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push esi
push eax
call fcn.0049ecb0
test eax, eax
je 0x51a7dc
mov ecx, dword [ebp - 0x534]
push esi
push ecx
mov ecx, dword [0x645ae0]
call fcn.0049ecb0
cmp dword [eax], 0
je 0x51a7dc
mov edx, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push esi
push edx
call fcn.0049ec60
mov ecx, dword [0x645858]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x538], ecx
push eax
lea ecx, [edi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
mov edx, dword [0x645858]
push eax
mov eax, dword [ebp - 0x538]
push 0x60f4b4
lea ecx, [ebp - 0x584]
push ecx
push edx
call dword [eax + 0x84]
add esp, 0x14
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 3
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0
push 0x410
push 0x60f500
push 8
sub esp, 0x1c
lea eax, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x538], esp
push eax
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
call fcn.004c3510
mov edi, dword [ebp - 0x548]
add esp, 0x2c
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [ebp - 0x540]
inc esi
add ecx, 2
cmp esi, 0xd
mov dword [ebp - 0x540], ecx
jl 0x51a5b0
mov ecx, dword [0x646074]
mov edx, dword [ecx]
push 0x19b
call dword [edx + 0x54]
jmp 0x51b05d
mov al, byte [ebx + 0xf1]
test al, al
jne 0x51b05d
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
xor edi, edi
mov dword [ebp - 0x53c], eax
mov dword [ebp - 0x538], ecx
mov dword [ebp - 0x534], edi
mov ecx, dword [0x645ae0]
push edi
call fcn.0049efe0
mov esi, eax
test esi, esi
je 0x51a867
lea edx, [ebp - 0x53c]
push edx
lea ecx, [esi + 4]
call fcn.0043be20
test eax, eax
jne 0x51a8af
inc edi
cmp edi, 0xa
jl 0x51a842
mov dword [ebp - 0x534], edi
xor edi, edi
mov dword [ebp - 0x534], edi
jmp 0x51a880
mov ecx, dword [0x645ae0]
push edi
call fcn.0049efe0
mov esi, eax
test esi, esi
je 0x51a89e
lea ecx, [esi + 4]
call fcn.0040cea0
test eax, eax
jne 0x51a8af
inc edi
cmp edi, 0xa
jl 0x51a880
mov dword [ebp - 0x534], edi
jmp 0x51b05d
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esi + 8], ecx
mov ecx, ebx
mov dword [ebp - 0x534], edi
mov byte [ebp - 0x541], 1
mov dword [esi + 4], eax
call fcn.00518e30
test eax, eax
je 0x51b05d
xor eax, eax
mov dword [esi], 2
mov al, byte [ebx + 0x18]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51a918
mov eax, dword [ebx + 0x20]
cmp dword [esi + 0xc], eax
je 0x51a8fa
mov dword [esi + 0xc], eax
jmp 0x51a918
mov dl, byte [ebx + 0x18]
and dl, 0xfe
mov ecx, ebx
mov byte [ebx + 0x18], dl
call fcn.00518e30
test eax, eax
jne 0x51a914
mov byte [ebp - 0x541], al
or byte [ebx + 0x18], 1
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 2
shr eax, 1
test eax, eax
je 0x51a92c
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x10], eax
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 4
shr eax, 2
test eax, eax
je 0x51a948
lea ecx, [ebx + 0x29]
push ecx
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 8
shr eax, 3
test eax, eax
je 0x51a95d
mov eax, dword [ebx + 0x48]
mov dword [esi + 0x14], eax
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 0x10
shr eax, 4
test eax, eax
je 0x51a978
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x50]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
xor eax, eax
mov al, byte [ebx + 0x18]
and eax, 0x20
shr eax, 5
test eax, eax
je 0x51aa0b
mov ecx, dword [esi + 0x34]
mov eax, dword [ebx + 0x54]
cmp eax, ecx
mov dword [esi + 0x34], eax
jle 0x51aa0b
cmp ecx, 0xffffffff
je 0x51aa0b
mov edx, dword [0x645858]
mov edi, dword [edx]
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
mov ecx, dword [0x645858]
push eax
push 0x60f494
lea eax, [ebp - 0x2c]
push eax
push ecx
call dword [edi + 0x84]
add esp, 0x14
push 0
push 0x496
push 0x60f500
push 8
sub esp, 0x1c
lea edx, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x538], esp
push edx
mov dword [ebp - 4], 6
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
call fcn.004c3510
add esp, 0x2c
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor eax, eax
mov al, byte [ebx + 0x19]
xor edi, edi
and eax, 2
shr eax, 1
cmp eax, edi
je 0x51aa21
mov eax, dword [ebx + 0x64]
mov dword [esi + 0x44], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 4
shr eax, 2
cmp eax, edi
je 0x51aa37
movzx eax, byte [ebx + 0x68]
mov dword [esi + 0x48], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 8
shr eax, 3
cmp eax, edi
je 0x51aa4d
movzx ecx, byte [ebx + 0x69]
mov dword [esi + 0x4c], ecx
mov dl, byte [ebx + 0x18]
mov cl, 0x80
and dl, cl
neg dl
sbb edx, edx
neg edx
mov dword [ebp - 0x538], edx
je 0x51aa68
mov eax, dword [ebx + 0x5c]
mov dword [esi + 0x3c], eax
cmp dword [esi + 0x3c], edi
jge 0x51aa70
mov dword [esi + 0x3c], edi
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 1
mov dword [ebp - 0x538], eax
je 0x51aa86
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x40], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 0x10
shr eax, 4
cmp eax, edi
je 0x51aa9b
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x60], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 0x20
shr eax, 5
cmp eax, edi
je 0x51aab0
mov eax, dword [ebx + 0x70]
mov dword [esi + 0x64], eax
xor eax, eax
mov al, byte [ebx + 0x19]
and eax, 0x40
shr eax, 6
cmp eax, edi
je 0x51aac5
mov eax, dword [ebx + 0x74]
mov dword [esi + 0x68], eax
mov dl, byte [ebx + 0x19]
and dl, cl
neg dl
sbb edx, edx
neg edx
mov dword [ebp - 0x538], edx
je 0x51aade
mov eax, dword [ebx + 0x78]
mov dword [esi + 0x6c], eax
push 0x10
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51aaf1
mov eax, dword [ebx + 0x7c]
mov dword [esi + 0x70], eax
push 0x11
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab07
mov eax, dword [ebx + 0x80]
mov dword [esi + 0x74], eax
push 0x12
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab1d
mov eax, dword [ebx + 0x84]
mov dword [esi + 0x78], eax
push 0x13
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab33
mov eax, dword [ebx + 0x88]
mov dword [esi + 0x7c], eax
push 0x14
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab4e
mov ax, word [ebx + 0x8c]
mov word [esi + 0x80], ax
push 0x15
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab64
mov eax, dword [ebx + 0x90]
mov dword [esi + 0x58], eax
push 0x16
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab7a
mov eax, dword [ebx + 0x94]
mov dword [esi + 0x5c], eax
push 6
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ab94
mov eax, dword [ebx + 0x58]
cmp eax, edi
mov dword [esi + 0x38], eax
jge 0x51ab94
mov dword [esi + 0x38], edi
push 0x17
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51abad
mov eax, dword [ebx + 0x98]
mov dword [esi + 0x84], eax
push 0x18
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51abc6
mov eax, dword [ebx + 0x9c]
mov dword [esi + 0x88], eax
push 0x19
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51abdf
mov eax, dword [ebx + 0xa0]
mov dword [esi + 0x8c], eax
push 0x1a
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51abf8
mov eax, dword [ebx + 0xa4]
mov dword [esi + 0x90], eax
push 0x1b
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ac11
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x94], eax
push 0x21
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ac2a
mov eax, dword [ebx + 0xc0]
mov dword [esi + 0xac], eax
push 0x31
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ac43
mov eax, dword [ebx + 0x4f4]
mov dword [esi + 0xb0], eax
push 0x1c
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ac5c
mov eax, dword [ebx + 0xac]
mov dword [esi + 0x98], eax
push 0x1d
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ac75
mov eax, dword [ebx + 0xb0]
mov dword [esi + 0x9c], eax
push 0x1e
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ac8e
mov eax, dword [ebx + 0xb4]
mov dword [esi + 0xa0], eax
push 0x1f
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51aca7
mov eax, dword [ebx + 0xb8]
mov dword [esi + 0xa4], eax
push 0x20
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51acc0
mov eax, dword [ebx + 0xbc]
mov dword [esi + 0xa8], eax
push 0x22
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51acd9
mov eax, dword [ebx + 0xc4]
mov dword [esi + 0xb4], eax
push 0x32
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51acf2
mov eax, dword [ebx + 0x4f8]
mov dword [esi + 0xb8], eax
push 0x23
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ad1f
mov al, byte [ebx + 0xc8]
movzx ecx, al
and ecx, 1
test al, 2
mov dword [esi + 0xbc], ecx
jne 0x51ad1f
mov dword [esi + 0xb8], 0xbf800000
push 0x35
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51ad3a
mov ax, word [ebx + 0x528]
mov word [esi + 0xc4], ax
xor edi, edi
mov dword [ebp - 0x548], edi
lea edx, [edi + 0x24]
push edx
mov ecx, ebx
call fcn.00518df0
test eax, eax
je 0x51af4b
lea eax, [ebp - 0x549]
push eax
push edi
mov ecx, ebx
mov byte [ebp - 0x549], 0xff
call fcn.00518dc0
test eax, eax
je 0x51af4b
mov ecx, dword [ebp - 0x534]
push eax
push edi
push ecx
mov ecx, dword [0x645ae0]
call fcn.0049e9f0
push 0x5eb0c0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
movzx eax, byte [ebp - 0x549]
dec eax
mov dword [ebp - 4], 7
je 0x51ae6e
dec eax
jne 0x51af3b
mov edx, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push edi
push edx
call fcn.0049ec60
test eax, eax
je 0x51af3b
mov eax, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push edi
push eax
call fcn.0049ec60
cmp dword [eax], 0
je 0x51af3b
mov ecx, dword [ebp - 0x534]
push edi
push ecx
mov ecx, dword [0x645ae0]
call fcn.0049ec60
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov edx, dword [0x645858]
mov edi, dword [edx]
push ecx
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
push eax
mov eax, dword [0x645858]
push 0x60f4d8
lea edx, [ebp - 0x584]
push edx
push eax
call dword [edi + 0x84]
add esp, 0x14
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 7
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0
push 0x530
push 0x60f500
push 8
sub esp, 0x1c
lea edx, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x538], esp
push edx
jmp 0x51af27
mov eax, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push edi
push eax
call fcn.0049ec60
test eax, eax
je 0x51af3b
mov ecx, dword [ebp - 0x534]
push edi
push ecx
mov ecx, dword [0x645ae0]
call fcn.0049ec60
cmp dword [eax], 0
je 0x51af3b
mov edx, dword [ebp - 0x534]
mov ecx, dword [0x645ae0]
push edi
push edx
call fcn.0049ec60
mov ecx, dword [0x645858]
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx]
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
mov edx, dword [0x645858]
push eax
push 0x60f4b4
lea ecx, [ebp - 0x568]
push ecx
push edx
call dword [edi + 0x84]
add esp, 0x14
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x568]
mov byte [ebp - 4], 7
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0
push 0x527
push 0x60f500
push 8
sub esp, 0x1c
lea eax, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x538], esp
push eax
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
call fcn.004c3510
mov edi, dword [ebp - 0x548]
add esp, 0x2c
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
inc edi
cmp edi, 0xd
mov dword [ebp - 0x548], edi
jl 0x51ad42
test byte [ebx + 0x1e], 8
mov dword [ebp - 0x53c], 0xffffffff
je 0x51afd8
lea ecx, [esi + 0xd8]
call fcn.0047bef0
lea ecx, [ebx + 0x4fc]
xor edi, edi
mov dword [ebp - 0x548], ecx
test edi, edi
jl 0x51b07b
cmp edi, 0xa
jge 0x51b07b
mov edx, dword [ebp - 0x548]
mov eax, dword [edx]
test eax, eax
jl 0x51afc3
mov dword [ebp - 0x53c], eax
lea eax, [ebp - 0x53c]
push eax
lea ecx, [esi + 0xd8]
mov dword [ebp - 0x538], 0
call fcn.00432a90
mov ecx, dword [ebp - 0x548]
inc edi
add ecx, 4
cmp edi, 0xa
mov dword [ebp - 0x548], ecx
jl 0x51af84
test byte [ebx + 0x1e], 0x10
je 0x51aff2
mov ebx, dword [ebx + 0x524]
xor eax, eax
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xec], eax
mov al, byte [ebp - 0x541]
test al, al
je 0x51b00c
mov ecx, dword [0x646074]
mov edx, dword [ecx]
push 0xa5
call dword [edx + 0x54]
mov ecx, dword [0x646564]
mov edx, dword [esi + 0xc]
mov eax, dword [ecx]
push edx
call dword [eax + 0x44]
mov esi, eax
test esi, esi
je 0x51b05d
mov eax, dword [esi]
push 0x63e8e8
mov ecx, esi
call dword [eax + 0x34]
push eax
mov ecx, 0x645478
call dword [sym.imp.tengine.dll_public:_int___thiscall_tKernel::IsKindOf_struct_tClass_const___struct_tClass_const__const]
test eax, eax
je 0x51b05d
mov eax, dword [esi + 0x154]
test eax, eax
je 0x51b05d
mov esi, eax
mov ecx, dword [esi + 4]
add ecx, 0x2c
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
push eax
mov ecx, esi
call fcn.004dda70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
mov eax, 2
call fcn.005c8895
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x51afa1