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

Disassembly:
push 0xffffffffffffffff
push 0x57813c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push ebp
push esi
push edi
mov esi, dword [0x5b62c4]
mov bl, byte [0x5b62c8]
xor edx, edx
mov ecx, 6
xor eax, eax
lea edi, [esp + 0xad]
mov dword [esp + 0x8c], 0x14
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], 0x384
mov byte [esp + 0xa0], dl
mov byte [esp + 0xa1], 1
mov byte [esp + 0xa2], dl
mov byte [esp + 0xa3], 0x86
mov byte [esp + 0xa4], dl
mov byte [esp + 0xa5], dl
mov byte [esp + 0xa6], dl
mov byte [esp + 0xa7], dl
mov dword [esp + 0xa8], esi
mov byte [esp + 0xac], bl
mov dword [esp + 0x50], 0xf
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x71]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], 0x190
mov byte [esp + 0x64], dl
mov byte [esp + 0x65], dl
mov byte [esp + 0x66], dl
mov byte [esp + 0x67], 0x86
mov byte [esp + 0x68], dl
mov byte [esp + 0x69], dl
mov byte [esp + 0x6a], dl
mov byte [esp + 0x6b], 0x30
mov dword [esp + 0x6c], esi
mov byte [esp + 0x70], bl
mov ebp, dword [esp + 0xd8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0x360]
mov dword [esp + 0xd0], 2
cmp eax, 0x3e8
jg 0x51edf1
mov esi, dword [ebp + 0x364]
mov ecx, dword [esp + 0xe0]
mov ebx, esi
mov edi, 0x67
shl ebx, 5
add ebx, esi
lea ecx, [ecx + ecx*8]
shl ebx, 1
shl ecx, 2
mov esi, ebx
mov dword [esp + 0x48], ecx
sub esi, ecx
mov ecx, dword [esp + 0xdc]
add esi, ecx
lea ecx, [eax + 2]
test ecx, ecx
mov ebx, edi
mov dword [esp + 0x14], edx
jle 0x51e4a7
jmp 0x51e423
xor edx, edx
mov ecx, dword [esp + 0x14]
cmp ecx, edx
je 0x51e462
inc eax
cmp ecx, eax
je 0x51e462
cmp ecx, 1
push 0
jne 0x51e453
mov edx, dword [esp + 0xe0]
push 2
push ebx
push esi
push edi
push edx
mov ecx, ebp
call fcn.004cc8d0
add edi, 0x1b
add ebx, 0x1b
jmp 0x51e48d
mov eax, dword [esp + 0xe0]
push 1
push ebx
push esi
push edi
push eax
jmp 0x51e471
mov ecx, dword [esp + 0xdc]
push 0
push 3
push ebx
push esi
push edi
push ecx
mov ecx, ebp
call fcn.004cc8d0
cmp dword [esp + 0x14], 1
jl 0x51e487
add edi, 0x1b
add ebx, 0x1b
jmp 0x51e48d
add edi, 0x2b
add ebx, 0x2b
mov eax, dword [ebp + 0x360]
mov ecx, dword [esp + 0x14]
inc ecx
lea edx, [eax + 2]
mov dword [esp + 0x14], ecx
cmp ecx, edx
jl 0x51e421
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0x1c]
mov edi, eax
mov ebx, eax
mov eax, dword [ebp + 0x360]
lea eax, [eax + eax*2]
lea esi, [eax + eax*8 + 0x92]
mov dword [esp + 0x3c], esi
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebp + 0x364]
xor ecx, ecx
mov byte [esp + 0xd0], 3
mov dword [esp + 0x14], ecx
lea edx, [eax + 1]
test edx, edx
jle 0x51e5a5
jmp 0x51e4f8
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x51e506
cmp ecx, eax
je 0x51e506
push 0
push 1
jmp 0x51e50a
push 0
push 3
push esi
push ebx
push 0x67
push edi
mov ecx, ebp
call fcn.004cc8d0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x364]
cmp eax, ecx
jge 0x51e58b
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Empty
mov ecx, dword [ebp + 0x350]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
lea ecx, [esp + 0x1c]
add eax, 8
push eax
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [esp + 0x1c]
mov esi, 0x5b6304
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x51e574
test cl, cl
je 0x51e570
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x51e574
add eax, 2
add esi, 2
test cl, cl
jne 0x51e550
xor eax, eax
jmp 0x51e579
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51e585
add edi, 0x1e
add ebx, 0x1e
jmp 0x51e58b
add edi, 0x42
add ebx, 0x42
mov eax, dword [ebp + 0x364]
mov ecx, dword [esp + 0x14]
inc ecx
lea edx, [eax + 1]
mov dword [esp + 0x14], ecx
cmp ecx, edx
jl 0x51e4f0
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0xd4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b62bc
call fcn.0055734e
push ecx
lea eax, [ebp + 0x368]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
mov byte [esp + 0x138], 4
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [ebp + 0x364]
mov ebx, dword [esp + 0xac]
mov eax, ecx
push 0x1e
shl eax, 5
add eax, ecx
mov byte [esp + 0x138], 3
shl eax, 1
sub eax, ebx
cdq
sub eax, edx
sar eax, 1
lea ecx, [eax + 0xc8]
push ecx
push 3
push eax
mov ecx, ebp
call fcn.004ccc50
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_3
lea edx, [esp + 0xf0]
lea eax, [esp + 0x34]
push edx
push eax
mov byte [esp + 0xd8], 5
call fcn.004c4f10
add esp, 8
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0xd4], 6
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x34]
mov byte [esp + 0xd0], 5
call sub.MFC42.DLL_CString::CString
push 0xd
lea ecx, [esp + 0x2c]
call fcn.00557258
push 0xa
lea ecx, [esp + 0x2c]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 2
rep movsd dword es:[edi], dword [esi]
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b6314
call fcn.0055734e
push ecx
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
mov byte [esp + 0x138], 7
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebp + 0x364]
mov ecx, dword [esp + 0x140]
mov edx, eax
push 0x64
shl edx, 5
add edx, eax
lea esi, [ecx + 3]
shl edx, 1
sub edx, ebx
mov byte [esp + 0x138], 5
mov dword [esp + 0xa4], esi
lea eax, [edx + ecx - 3]
mov ecx, ebp
push eax
push 0x2b
push esi
call fcn.004ccc50
mov eax, dword [ebp + 0x364]
mov ebx, esi
test eax, eax
mov dword [esp + 0x20], 0
jle 0x51e9e5
mov esi, dword [esp + 0x20]
lea ecx, [ebx + 0x3c]
lea edx, [ebx + 0x18]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], edx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x10]
mov byte [esp + 0xd0], 8
call sub.MFC42.DLL_CString::Empty
mov eax, dword [ebp + 0x350]
lea ecx, [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
call sub.MFC42.DLL_CString::operator_2
mov esi, dword [esp + 0x10]
mov edi, 0x5b6304
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51e7b5
test al, al
je 0x51e7b1
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51e7b5
add esi, 2
add edi, 2
test al, al
jne 0x51e78d
xor eax, eax
jmp 0x51e7ba
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [esp + 0x10]
jne 0x51e8c4
call sub.MFC42.DLL_CString::Empty
mov eax, dword [esp + 0xe4]
mov esi, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi]
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CString::operator_2
lea edx, [esp + 0x10]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.004c4f10
add esp, 8
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xd4], 9
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x34]
mov byte [esp + 0xd0], 8
call sub.MFC42.DLL_CString::CString
add esi, 4
push 0xd
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], esi
call fcn.00557258
push 0xa
lea ecx, [esp + 0x14]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b630c
call fcn.0055734e
push ecx
lea edx, [esp + 0x74]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
mov byte [esp + 0x138], 0xa
call sub.MFC42.DLL_CString::CString_2
mov esi, dword [esp + 0x78]
push 0x8f
push esi
push 0x6a
push ebx
mov ecx, ebp
mov byte [esp + 0x144], 8
call fcn.004ccc50
mov eax, dword [esp + 0x18]
add ebx, 0x1e
add esi, 0x1e
add eax, 0x1e
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
jmp 0x51e9bd
call sub.MFC42.DLL_CString::Empty
mov eax, dword [esp + 0xe4]
mov esi, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi]
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CString::operator_2
lea edx, [esp + 0x10]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.004c4f10
add esp, 8
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xd4], 0xb
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x38]
mov byte [esp + 0xd0], 8
call sub.MFC42.DLL_CString::CString
add esi, 4
push 0xd
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], esi
call fcn.00557258
push 0xa
lea ecx, [esp + 0x14]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b630c
call fcn.0055734e
push ecx
lea edx, [esp + 0x74]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
mov byte [esp + 0x138], 0xc
call sub.MFC42.DLL_CString::CString_2
mov esi, dword [esp + 0x7c]
push 0x8f
push esi
push 0x6a
push ebx
mov ecx, ebp
mov byte [esp + 0x144], 8
call fcn.004ccc50
mov ecx, dword [esp + 0x14]
add ebx, 0x42
add ecx, 0x42
add esi, 0x42
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x10]
mov byte [esp + 0xd0], 5
call sub.MFC42.DLL_CString::CString
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0x364]
inc esi
cmp esi, eax
mov dword [esp + 0x20], esi
jl 0x51e754
mov eax, dword [ebp + 0x360]
mov dword [esp + 0x14], 0x95
inc eax
mov dword [esp + 0x24], 0xaa
cmp eax, 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 1
jle 0x51ed14
mov eax, dword [ebp + 0x364]
mov ebx, dword [esp + 0x3c]
xor esi, esi
test eax, eax
mov dword [esp + 0x10], esi
jle 0x51ecea
lea ecx, [ebx + 0x3c]
lea edx, [ebx + 0x18]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Empty
mov eax, dword [ebp + 0x350]
lea ecx, [esp + 0x1c]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
call sub.MFC42.DLL_CString::operator_2
mov ecx, dword [esp + 0x1c]
mov edi, 0x5b6304
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x51ea89
test al, al
je 0x51ea85
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x51ea89
add esi, 2
add edi, 2
test al, al
jne 0x51ea65
xor eax, eax
jmp 0x51ea8e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51eb20
push eax
push eax
push eax
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b6304
call fcn.0055734e
push ecx
mov byte [esp + 0x134], 0xd
mov ecx, esp
mov dword [esp + 0x94], esp
push 0x5c0168
call fcn.0055734e
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push esi
push ecx
push ebx
mov ecx, ebp
mov byte [esp + 0x144], 5
call fcn.004ccc50
mov eax, dword [esp + 0x20]
add ebx, 0x1e
add esi, 0x1e
add eax, 0x1e
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jmp 0x51ecd3
mov edi, 0x5b62fc
mov esi, ecx
mov dl, byte [esi]
mov cl, byte [edi]
mov al, dl
cmp dl, cl
jne 0x51eb4f
test al, al
je 0x51eb4b
mov cl, byte [esi + 1]
mov dl, byte [edi + 1]
mov al, cl
cmp cl, dl
jne 0x51eb4f
add esi, 2
add edi, 2
test al, al
jne 0x51eb27
xor eax, eax
jmp 0x51eb54
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51ec46
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Empty
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0xe8]
push esi
call fcn.00451ae0
push ecx
add eax, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call sub.MFC42.DLL_CString::CString_2
lea edx, [esp + 0x38]
push edx
call fcn.004bd7e0
add esp, 8
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xd4], 0xe
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x34]
mov byte [esp + 0xd0], 5
call sub.MFC42.DLL_CString::CString
inc esi
push 0xd
lea ecx, [esp + 0x20]
mov dword [esp + 0x44], esi
call fcn.00557258
push 0xa
lea ecx, [esp + 0x20]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b62fc
call fcn.0055734e
push ecx
lea eax, [esp + 0x80]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
mov byte [esp + 0x138], 0xf
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x78]
push ecx
push esi
mov byte [esp + 0x13c], 5
push edx
jmp 0x51ecb6
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b6224
call fcn.0055734e
push ecx
mov byte [esp + 0x134], 0x10
mov ecx, esp
mov dword [esp + 0x94], esp
push 0x5c0168
call fcn.0055734e
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x78]
push eax
push esi
mov byte [esp + 0x13c], 5
push ecx
push ebx
mov ecx, ebp
call fcn.004ccc50
mov ecx, dword [esp + 0x18]
add ebx, 0x42
add ecx, 0x42
add esi, 0x42
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0x364]
inc esi
cmp esi, eax
mov dword [esp + 0x10], esi
jl 0x51ea3b
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0x360]
add eax, 0x1b
mov dword [esp + 0x14], eax
add eax, 0x15
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
inc eax
inc edx
cmp eax, edx
mov dword [esp + 0x38], eax
jl 0x51ea15
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
mov dword [0x5c01a4], 0x27
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b62b4
call fcn.0055734e
push ecx
lea eax, [esp + 0x158]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
mov byte [esp + 0x138], 0x11
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebp + 0x360]
mov ecx, dword [0x5c01a4]
mov edi, dword [esp + 0xac]
mov byte [esp + 0x134], 5
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
lea edx, [eax + ecx + 0x95]
mov ecx, dword [ebp + 0x364]
push edx
mov edx, ecx
shl edx, 5
add edx, ecx
mov ecx, dword [esp + 0x144]
shl edx, 1
sub edx, edi
add eax, 0x95
lea edx, [edx + ecx - 3]
mov ecx, ebp
push edx
push eax
mov eax, dword [esp + 0xac]
push eax
call fcn.004ccc50
lea ecx, [esp + 0x28]
mov byte [esp + 0xd0], 3
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0xd0], 2
lea ecx, [esp + 0x1c]
jmp 0x51f6bc
mov ecx, dword [esp + 0xe0]
lea edx, [eax + 2]
mov esi, 0x67
lea ebx, [ecx + ecx*8]
mov ecx, dword [ebp + 0x364]
mov edi, ecx
shl edi, 5
add edi, ecx
xor ecx, ecx
shl ebx, 2
shl edi, 1
mov dword [esp + 0x48], ebx
sub edi, ebx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0x38], ecx
add edi, ebx
test edx, edx
jle 0x51ee6e
test ecx, ecx
je 0x51ee46
inc eax
cmp ecx, eax
je 0x51ee46
cmp ecx, 1
push 0
jne 0x51ee42
push 2
jmp 0x51ee4a
push 1
jmp 0x51ee4a
push 0
push 3
push esi
push edi
push esi
push ebx
mov ecx, ebp
call fcn.004cc8d0
mov eax, dword [ebp + 0x360]
mov ecx, dword [esp + 0x38]
add esi, 0xc
inc ecx
lea edx, [eax + 2]
mov dword [esp + 0x38], ecx
cmp ecx, edx
jl 0x51ee2e
mov eax, dword [ebp + 0x360]
mov esi, ebx
mov edi, ebx
mov dword [esp + 0x28], esi
lea eax, [eax + eax*2]
lea ecx, [eax*4 + 0x73]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebp + 0x364]
mov byte [esp + 0xd0], 0x12
mov dword [esp + 0x18], 0
lea edx, [eax + 1]
test edx, edx
jle 0x51ef84
mov ecx, dword [esp + 0x18]
jmp 0x51eec2
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
test ecx, ecx
je 0x51eed5
cmp ecx, eax
je 0x51eed5
mov eax, dword [esp + 0x3c]
push 0
push 1
push eax
jmp 0x51eede
mov ecx, dword [esp + 0x3c]
push 0
push 3
push ecx
push esi
push 0x67
push edi
mov ecx, ebp
call fcn.004cc8d0
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x364]
cmp edx, eax
jge 0x51ef6a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Empty
mov eax, dword [ebp + 0x350]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [esp + 0x10]
mov esi, 0x5b6304
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x51ef47
test cl, cl
je 0x51ef43
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x51ef47
add eax, 2
add esi, 2
test cl, cl
jne 0x51ef23
xor eax, eax
jmp 0x51ef4c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51ef5c
mov eax, dword [esp + 0x28]
add edi, 0x1e
add eax, 0x1e
jmp 0x51ef66
mov eax, dword [esp + 0x28]
add edi, 0x42
add eax, 0x42
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x364]
mov ecx, dword [esp + 0x18]
inc ecx
lea edx, [eax + 1]
mov dword [esp + 0x18], ecx
cmp ecx, edx
jl 0x51eeba
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0xd4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b62bc
call fcn.0055734e
push ecx
lea eax, [ebp + 0x368]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
mov byte [esp + 0x138], 0x13
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [ebp + 0x364]
mov edi, dword [esp + 0xac]
mov eax, ecx
push 0x1e
shl eax, 5
add eax, ecx
mov byte [esp + 0x138], 0x12
shl eax, 1
sub eax, edi
cdq
sub eax, edx
sar eax, 1
lea ecx, [eax + 0xc8]
push ecx
push 3
push eax
mov ecx, ebp
call fcn.004ccc50
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString_3
lea edx, [esp + 0xf0]
lea eax, [esp + 0x34]
push edx
push eax
mov byte [esp + 0xd8], 0x14
call fcn.004c4f10
add esp, 8
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0xd4], 0x15
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x34]
mov byte [esp + 0xd0], 0x14
call sub.MFC42.DLL_CString::CString
push 0xd
lea ecx, [esp + 0x28]
call fcn.00557258
push 0xa
lea ecx, [esp + 0x28]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
rep movsd dword es:[edi], dword [esi]
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5b6314
call fcn.0055734e
push ecx
lea edx, [esp + 0x88]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
mov byte [esp + 0x138], 0x16
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebp + 0x364]
push 0x64
mov edx, eax
lea ecx, [ebx + 3]
shl edx, 5
add edx, eax
mov eax, dword [esp + 0xb0]
shl edx, 1
sub edx, eax
mov dword [esp + 0xa4], ecx
mov byte [esp + 0x138], 0x14
lea eax, [edx + ebx - 3]
push eax
push 0x2b
push ecx
mov ecx, ebp
call fcn.004ccc50
mov ecx, dword [ebp + 0x360]
xor eax, eax
inc ecx
mov dword [esp + 0x18], 0x6a
test ecx, ecx
mov dword [esp + 0x14], 0x70
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
jle 0x51f5f3
mov eax, dword [ebp + 0x364]
mov ebx, dword [esp + 0x3c]
xor esi, esi
test eax, eax
mov dword [esp + 0x34], esi
jle 0x51f5c9
lea edx, [ebx + 0x3c]
lea eax, [ebx + 0x18]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x10]
test eax, eax
jne 0x51f362
call sub.MFC42.DLL_CString::Empty
mov ecx, dword [ebp + 0x350]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edx*4]
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CString::operator_2
mov esi, dword [esp + 0x10]
mov edi, 0x5b6304
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51f1b4
test al, al
je 0x51f1b0
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51f1b4
add esi, 2
add edi, 2
test al, al
jne 0x51f18c
xor eax, eax
jmp 0x51f1b9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [esp + 0x10]
jne 0x51f2a1
call sub.MFC42.DLL_CString::Empty
push 0x5be2c0
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_1
push 0xd
lea ecx, [esp + 0x14]
call fcn.00557258
push 0xa
lea ecx, [esp + 0x14]
call fcn.00557258
push 0x5be2bc
lea ecx, [esp + 0x14]
call fcn.00557276
push 0xd
lea ecx, [esp + 0x14]
call fcn.00557258
push 0xa
lea ecx, [esp + 0x14]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0xac], esp
push 0x5b630c
call fcn.0055734e
push ecx
lea eax, [esp + 0x74]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
mov byte [esp + 0x138], 0x17
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
push ecx
push esi
push edx
push ebx
mov ecx, ebp
mov byte [esp + 0x144], 0x14
call fcn.004ccc50
mov eax, dword [esp + 0x20]
add ebx, 0x1e
add esi, 0x1e
add eax, 0x1e
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
jmp 0x51f5b2
call sub.MFC42.DLL_CString::Empty
mov eax, dword [esp + 0xe4]
mov esi, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CString::operator_2
lea edx, [esp + 0x10]
lea eax, [esp + 0x30]
push edx
push eax
call fcn.004c4f10
add esp, 8
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xd4], 0x18
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x30]
mov byte [esp + 0xd0], 0x14
call sub.MFC42.DLL_CString::CString
inc esi
push 0xd
lea ecx, [esp + 0x14]
mov dword [esp + 0x2c], esi
call fcn.00557258
push 0xa
lea ecx, [esp + 0x14]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0xa4], esp
push 0x5b630c
call fcn.0055734e
push ecx
mov byte [esp + 0x134], 0x19
mov ecx, esp
mov dword [esp + 0xb0], esp
jmp 0x51f502
call sub.MFC42.DLL_CString::Empty
mov edx, dword [ebp + 0x350]
lea ecx, [esp + 0x10]
mov eax, dword [edx + esi*4]
add eax, 8
push eax
call sub.MFC42.DLL_CString::operator_2
mov ecx, dword [esp + 0x10]
mov edi, 0x5b6304
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x51f3ac
test al, al
je 0x51f3a8
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x51f3ac
add esi, 2
add edi, 2
test al, al
jne 0x51f388
xor eax, eax
jmp 0x51f3b1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f408
push eax
push eax
push eax
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push eax
push ecx
lea eax, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0xa4], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x134], 0x1a
mov ecx, esp
mov dword [esp + 0xb0], esp
push 0x5c0168
call fcn.0055734e
jmp 0x51f265
mov edi, 0x5b62fc
mov esi, ecx
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51f437
test al, al
je 0x51f433
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51f437
add esi, 2
add edi, 2
test al, al
jne 0x51f40f
xor eax, eax
jmp 0x51f43c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f528
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Empty
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0xe8]
push esi
call fcn.00451ae0
push ecx
add eax, 4
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x30]
push eax
call fcn.004bd7e0
add esp, 8
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xd4], 0x1b
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x2c]
mov byte [esp + 0xd0], 0x14
call sub.MFC42.DLL_CString::CString
inc esi
push 0xd
lea ecx, [esp + 0x14]
mov dword [esp + 0x3c], esi
call fcn.00557258
push 0xa
lea ecx, [esp + 0x14]
call fcn.00557258
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0xa4], esp
push 0x5b62fc
call fcn.0055734e
push ecx
mov byte [esp + 0x134], 0x1c
mov ecx, esp
mov dword [esp + 0xb0], esp
lea edx, [esp + 0x74]
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
push eax
push esi
mov byte [esp + 0x13c], 0x14
push ecx
jmp 0x51f595
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0xa4], esp
push 0x5b6224
call fcn.0055734e
push ecx
mov byte [esp + 0x134], 0x1d
mov ecx, esp
mov dword [esp + 0xb0], esp
push 0x5c0168
call fcn.0055734e
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
push edx
push esi
mov byte [esp + 0x13c], 0x14
push eax
push ebx
mov ecx, ebp
call fcn.004ccc50
mov ecx, dword [esp + 0x1c]
add ebx, 0x42
add ecx, 0x42
add esi, 0x42
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + 0x364]
inc esi
cmp esi, eax
mov dword [esp + 0x34], esi
jl 0x51f154
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x360]
add eax, 0xc
mov dword [esp + 0x18], eax
add eax, 6
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
inc eax
inc ecx
cmp eax, ecx
mov dword [esp + 0x40], eax
jl 0x51f12e
push 0
push 0
push 0
mov ecx, 0xf
sub esp, 0x3c
lea esi, [esp + 0x98]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0xa4], esp
push 0x5b62b4
call fcn.0055734e
push ecx
lea edx, [esp + 0x158]
mov ecx, esp
mov dword [esp + 0xb0], esp
push edx
mov byte [esp + 0x138], 0x1e
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebp + 0x360]
mov ecx, dword [0x5c01a4]
mov edi, dword [esp + 0xac]
mov byte [esp + 0x134], 0x14
lea eax, [eax + eax*2]
shl eax, 2
lea edx, [eax + ecx + 0x76]
mov ecx, dword [ebp + 0x364]
push edx
mov edx, ecx
shl edx, 5
add edx, ecx
mov ecx, dword [esp + 0x144]
shl edx, 1
sub edx, edi
add eax, 0x76
lea edx, [edx + ecx - 3]
mov ecx, ebp
push edx
push eax
mov eax, dword [esp + 0xac]
push eax
call fcn.004ccc50
lea ecx, [esp + 0x24]
mov byte [esp + 0xd0], 0x12
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0xd0], 2
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xec]
mov byte [esp + 0xd0], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xf0]
mov byte [esp + 0xd0], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xf4]
mov dword [esp + 0xd0], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xc4
ret 0x20