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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x586f14
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x5fae30]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.00404c7d
cmp byte [esi + 0xa8], 0x3f
jne 0x4230d7
cmp dword [esi + 0xac], 1
jne 0x4230d7
mov ecx, esi
call fcn.00404c7d
mov cl, byte [esi + 0xa8]
movsx eax, cl
xor edi, edi
add eax, 0xffffffdf
mov dword [ebp - 0x18], edi
mov byte [ebp - 0x11], 0x3e
cmp eax, 0x31
ja case.0x422528.41
movzx eax, byte [eax + 0x4233a0]
mov ebx, dword [ebp + 8]
jmp dword [eax*4 + 0x42337c]
mov dword [ebp - 0x18], 1
mov ecx, esi
call fcn.00404c7d
push 0xc
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 0
test edi, edi
je 0x422591
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
and edx, 0xffffffef
push edx
mov ecx, esi
call fcn.00401131
mov dword [edi + 4], eax
xor eax, eax
cmp dword [ebp - 0x18], eax
push edi
sete al
mov ecx, esi
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 8], eax
call fcn.00405da8
mov edi, eax
jmp 0x42335d
xor edi, edi
push edi
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.00405da8
mov edi, eax
jmp 0x42335d
mov al, byte [esi + 0xb8]
cmp al, 0x21
je 0x4225b9
cmp al, 0x3d
je 0x4225c0
jmp case.0x422528.39
mov dword [ebp - 0x18], 1
mov ecx, esi
call fcn.00404c7d
mov ecx, esi
call fcn.00404c7d
push 0xc
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 1
test edi, edi
je 0x42260b
mov ecx, dword [ebx]
or ecx, 0x10
push ecx
mov ecx, esi
call fcn.00401131
xor edx, edx
cmp dword [ebp - 0x18], edx
mov dword [edi], vtable.CAssertElxT_0_.0
sete dl
mov dword [edi + 4], eax
mov dword [edi + 8], edx
jmp 0x42260d
xor edi, edi
push edi
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.00405da8
mov edi, eax
test edi, edi
jne 0x42335d
cmp byte [esi + 0xa8], 0x50
jne case.0x422528.34
mov ecx, esi
call fcn.00404c7d
mov al, byte [esi + 0xa8]
cmp al, 0x3c
jne 0x422646
mov byte [ebp - 0x11], 0x3e
jmp 0x42264d
cmp al, 0x27
jne 0x42264d
mov byte [ebp - 0x11], al
mov ecx, esi
call fcn.00404c7d
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x2c], eax
inc eax
push 0x1c
mov dword [esi + 0xc], eax
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x42267b
mov ecx, dword [ebx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.004070b3
jmp 0x42267d
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
push 0x20
mov dword [ebp - 0x24], eax
call fcn.0053f7d7
add esp, 4
mov edi, vtable.CBufferT_char_.0
test eax, eax
je 0x4226c6
mov ecx, dword [ebx]
shr ecx, 4
mov dword [eax], vtable.CBracketElxT_char_.0
and ecx, 1
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x1c], edx
mov dword [eax + 0x18], edx
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], ecx
jmp 0x4226c8
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
push 0x20
mov dword [ebp - 0x1c], eax
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x42270e
mov ecx, dword [ebx]
shr ecx, 4
not ecx
mov dword [eax], vtable.CBracketElxT_char_.0
and ecx, 1
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x1c], edx
mov dword [eax + 0x18], edx
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], ecx
jmp 0x422710
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
mov edi, dword [ebp - 0x1c]
xor ebx, ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], vtable.CBufferT_char_.0
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], 2
cmp byte [esi + 0xa8], bl
je 0x422839
mov dl, byte [esi + 0xa8]
mov byte [ebp - 0x10], dl
cmp dl, byte [ebp - 0x11]
je 0x422839
mov ebx, dword [edi + 0x1c]
cmp ebx, 8
jge 0x422765
mov ebx, 8
mov ecx, dword [edi + 0x14]
lea eax, [ecx + 2]
cmp eax, ebx
jle 0x422788
add ebx, ebx
cmp eax, ebx
jle 0x422788
lea ebx, [ecx + 0xd]
mov eax, ebx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x422786
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, dword [edi + 0x1c]
jle 0x4227a6
mov ecx, dword [edi + 0x18]
push ebx
push ecx
call fcn.005408f9
mov dl, byte [ebp - 0x10]
add esp, 8
mov dword [edi + 0x18], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], ebx
mov eax, dword [edi + 0x18]
add eax, dword [edi + 0x14]
mov byte [eax], dl
inc dword [edi + 0x14]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0x30]
mov dl, byte [esi + 0xa8]
mov byte [ebp - 0x10], dl
mov ebx, eax
cmp eax, 8
jge 0x4227d3
mov ebx, 8
mov edx, dword [ebp - 0x38]
lea ecx, [edx + 2]
cmp ecx, ebx
jle 0x4227f7
add ebx, ebx
cmp ecx, ebx
jle 0x4227f7
lea ebx, [edx + 0xd]
mov ecx, ebx
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x4227f5
dec ecx
or ecx, 0xfffffff8
inc ecx
sub ebx, ecx
cmp ebx, eax
jle 0x422811
mov edx, dword [ebp - 0x34]
push ebx
push edx
call fcn.005408f9
add esp, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
mov cl, byte [ebp - 0x10]
mov byte [ebx + eax], cl
inc eax
mov ecx, esi
mov dword [ebp - 0x38], eax
mov byte [ebx + eax], 0
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
jne 0x422746
mov ecx, esi
call fcn.00404c7d
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x42284e
mov dword [ebp - 0x18], 0x5aef37
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x18]
push eax
call fcn.004035a8
add esp, 8
test eax, eax
je 0x422887
mov ecx, dword [ebp - 0x18]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x422887
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov dword [edx + 4], eax
mov dword [ecx + 4], eax
lea ecx, [edi + 0xc]
call fcn.00401e1f
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
add edi, 4
push edx
mov ecx, edi
call fcn.00401203
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.00401131
push eax
mov ecx, edi
call fcn.00401203
mov edx, dword [ebp - 0x20]
push edx
mov ecx, edi
call fcn.00401203
mov edi, dword [ebp - 0x2c]
push 0
push edi
lea ecx, [esi + 0x50]
call fcn.00405f8d
mov eax, dword [ebp - 0x24]
mov ecx, dword [esi + 0x5c]
mov dword [ecx + edi*4], eax
mov edi, eax
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x42335d
push ebx
call fcn.005408bf
add esp, 4
jmp 0x42335d
mov ecx, esi
call fcn.00404c7d
push 8
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 3
test edi, edi
je 0x422591
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
mov ecx, esi
call fcn.00401131
mov dword [edi], vtable.CIndependentElxT_0_.0
mov dword [edi + 4], eax
jmp 0x422593
mov ecx, esi
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
je 0x422964
mov edi, edi
movsx ecx, byte [esi + 0xa8]
push ecx
call fcn.00540fbe
add esp, 4
test eax, eax
je 0x422964
mov ecx, esi
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
jne 0x422940
mov al, byte [esi + 0xa8]
cmp al, 0x3c
je 0x422a85
cmp al, 0x27
je 0x422a83
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], vtable.CBufferT_char_.0
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 4], 5
test al, al
je 0x422a1a
jmp 0x4229a5
mov ecx, dword [ebp - 0x30]
mov dl, byte [esi + 0xa8]
mov byte [ebp - 0x10], dl
cmp dl, 0x29
je 0x422a1a
mov edi, ecx
cmp ecx, 8
jge 0x4229bf
mov edi, 8
lea eax, [ebx + 2]
cmp eax, edi
jle 0x4229df
add edi, edi
cmp eax, edi
jle 0x4229df
lea edi, [ebx + 0xd]
mov eax, edi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4229dd
dec eax
or eax, 0xfffffff8
inc eax
sub edi, eax
cmp edi, ecx
jle 0x4229fc
mov ecx, dword [ebp - 0x34]
push edi
push ecx
call fcn.005408f9
mov dl, byte [ebp - 0x10]
add esp, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x34]
mov byte [eax + ebx], dl
inc ebx
mov ecx, esi
mov dword [ebp - 0x38], ebx
mov byte [eax + ebx], 0
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
jne 0x4229a2
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], 0
mov dword [ebp + 8], eax
test eax, eax
jne 0x422a32
mov dword [ebp + 8], 0x5aef37
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp + 8]
push eax
call fcn.004035a8
push 0x20
call fcn.0053f7d7
add esp, 0xc
test eax, eax
je 0x422a5a
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00402dc9
jmp 0x422a5c
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
mov edi, eax
push edi
lea ecx, [esi + 0x3c]
call fcn.00404610
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.00403913
jmp 0x42335d
cmp al, 0x3c
setne bl
dec bl
and bl, 0x17
add bl, 0x27
push 0x20
mov byte [ebp - 0x11], bl
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x422aac
push 0xfffffffffffffffd
mov ecx, eax
call fcn.00402dc9
jmp 0x422aae
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x24], edi
call fcn.00404c7d
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], vtable.CBufferT_char_.0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 4
cmp byte [esi + 0xa8], al
jne 0x422b43
mov ebx, dword [ebp - 0x34]
mov ecx, esi
call fcn.00404c7d
mov dword [ebp + 8], ebx
test ebx, ebx
jne 0x422afe
mov dword [ebp + 8], 0x5aef37
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp + 8]
push eax
call fcn.004035a8
add esp, 8
test eax, eax
je 0x422c36
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x422c36
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x24]
lea ecx, [edi + 0xc]
mov dword [ebx + 8], edx
call fcn.00401e1f
jmp 0x422c39
mov bl, byte [ebp - 0x11]
mov dl, byte [esi + 0xa8]
mov byte [ebp - 0x10], dl
cmp dl, bl
je 0x422ae6
mov ebx, dword [edi + 0x1c]
cmp ebx, 8
jge 0x422b5d
mov ebx, 8
mov ecx, dword [edi + 0x14]
lea eax, [ecx + 2]
cmp eax, ebx
jle 0x422b80
add ebx, ebx
cmp eax, ebx
jle 0x422b80
lea ebx, [ecx + 0xd]
mov eax, ebx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x422b7e
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, dword [edi + 0x1c]
jle 0x422b9e
mov ecx, dword [edi + 0x18]
push ebx
push ecx
call fcn.005408f9
mov dl, byte [ebp - 0x10]
add esp, 8
mov dword [edi + 0x18], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], ebx
mov eax, dword [edi + 0x18]
add eax, dword [edi + 0x14]
mov byte [eax], dl
inc dword [edi + 0x14]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0x30]
mov dl, byte [esi + 0xa8]
mov byte [ebp + 8], dl
mov ebx, eax
cmp eax, 8
jge 0x422bcb
mov ebx, 8
mov edx, dword [ebp - 0x38]
lea ecx, [edx + 2]
cmp ecx, ebx
jle 0x422bef
add ebx, ebx
cmp ecx, ebx
jle 0x422bef
lea ebx, [edx + 0xd]
mov ecx, ebx
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x422bed
dec ecx
or ecx, 0xfffffff8
inc ecx
sub ebx, ecx
cmp ebx, eax
jle 0x422c09
mov edx, dword [ebp - 0x34]
push ebx
push edx
call fcn.005408f9
add esp, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
mov cl, byte [ebp + 8]
mov byte [ebx + eax], cl
inc eax
mov ecx, esi
mov dword [ebp - 0x38], eax
mov byte [ebx + eax], 0
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
jne 0x422b40
jmp 0x422ae9
mov ebx, dword [ebp - 0x24]
push ebx
lea ecx, [esi + 0x3c]
call fcn.00404610
lea ecx, [ebp - 0x40]
mov edi, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.00403913
jmp 0x42335d
push 0x28
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x422c6f
mov ecx, eax
call fcn.00408d4b
jmp 0x422c71
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
mov edi, eax
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [esi + 0xb8]
mov dword [ebp - 0x18], edi
mov byte [ebp - 0x3c], 0x3f
mov dword [ebp - 0x38], 1
call fcn.004026da
mov ecx, esi
test eax, eax
je 0x422cb4
push ebx
call fcn.00404313
mov dword [edi + 0x1c], eax
jmp 0x422e4b
call fcn.00404c7d
mov ebx, dword [esi + 0xb0]
push 0xc
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 6
test edi, edi
je 0x422cf8
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.00401131
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [edi + 4], eax
mov dword [edi + 8], 1
jmp 0x422cfa
xor edi, edi
push edi
mov ecx, esi
call fcn.00405da8
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0x90]
xor edi, edi
cmp eax, edi
jne 0x422d19
mov eax, 0x5aef21
mov edx, dword [esi + 0xb0]
push 1
sub edx, ebx
push edx
add eax, ebx
push eax
add ecx, 8
call fcn.0040542f
xor ecx, ecx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], vtable.CBufferT_char_.0
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 4], 7
cmp ebx, dword [esi + 0xb0]
jge 0x422de6
jmp 0x422d63
mov edi, dword [ebp - 0x30]
cmp ebx, dword [esi + 0x94]
jl 0x422d71
mov byte [ebp - 0x11], 0
jmp 0x422d7d
mov eax, dword [esi + 0x90]
mov dl, byte [ebx + eax]
mov byte [ebp - 0x11], dl
cmp edi, 8
jge 0x422d87
mov edi, 8
mov eax, dword [ebp - 0x38]
lea edx, [eax + 2]
cmp edx, edi
jle 0x422dab
add edi, edi
cmp edx, edi
jle 0x422dab
lea edi, [eax + 0xd]
mov edx, edi
and edx, reloc.OLEAUT32.dll_VariantInit
jns 0x422da9
dec edx
or edx, 0xfffffff8
inc edx
sub edi, edx
cmp edi, dword [ebp - 0x30]
jle 0x422dc5
push edi
push ecx
call fcn.005408f9
mov ecx, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
add esp, 8
mov dword [ebp - 0x30], edi
mov dl, byte [ebp - 0x11]
mov byte [ecx + eax], dl
inc eax
inc ebx
mov byte [ecx + eax], 0
mov dword [ebp - 0x38], eax
cmp ebx, dword [esi + 0xb0]
jl 0x422d60
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x422ded
mov dword [ebp - 0x1c], 0x5aef37
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x1c]
push ecx
call fcn.004035a8
add esp, 8
or edi, 0xffffffff
test eax, eax
je 0x422e24
mov edx, dword [ebp - 0x1c]
xor eax, eax
cmp byte [edx], al
sete al
test eax, eax
je 0x422e24
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 4], ecx
mov dword [eax + 0x1c], 0
jmp 0x422e33
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [esi + 0x78]
mov dword [eax + 4], edi
call fcn.00408c10
mov ecx, esi
call fcn.00404c7d
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], edi
call fcn.00403913
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
mov edx, dword [ebx]
lea eax, [ebp + 8]
push eax
mov ecx, esi
mov dword [ebp + 8], edx
call fcn.004026f8
mov dword [edi + 0x20], eax
cmp byte [esi + 0xa8], 0x7c
jne 0x422e80
mov ecx, esi
call fcn.00404c7d
mov ecx, dword [ebx]
push ecx
mov ecx, esi
call fcn.00401131
mov dword [edi + 0x24], eax
jmp 0x42335d
mov dword [edi + 0x24], 0
jmp 0x42335d
test cl, cl
je 0x422eb4
movsx edx, byte [esi + 0xa8]
push edx
call fcn.00540fbe
add esp, 4
test eax, eax
je 0x422eb4
mov ecx, esi
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
jne 0x422e90
mov al, byte [esi + 0xa8]
cmp al, 0x30
jl 0x422fe3
cmp al, 0x39
jg 0x422fe3
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], vtable.CBufferT_char_.0
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 4], 8
test al, al
je 0x422f6e
jmp 0x422ef5
mov ecx, dword [ebp - 0x30]
mov dl, byte [esi + 0xa8]
mov byte [ebp - 0x10], dl
cmp dl, 0x29
je 0x422f6e
mov edi, ecx
cmp ecx, 8
jge 0x422f13
mov edi, 8
lea eax, [ebx + 2]
cmp eax, edi
jle 0x422f33
add edi, edi
cmp eax, edi
jle 0x422f33
lea edi, [ebx + 0xd]
mov eax, edi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x422f31
dec eax
or eax, 0xfffffff8
inc eax
sub edi, eax
cmp edi, ecx
jle 0x422f50
mov ecx, dword [ebp - 0x34]
push edi
push ecx
call fcn.005408f9
mov dl, byte [ebp - 0x10]
add esp, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x34]
mov byte [eax + ebx], dl
inc ebx
mov ecx, esi
mov dword [ebp - 0x38], ebx
mov byte [eax + ebx], 0
call fcn.00404c7d
cmp byte [esi + 0xa8], 0
jne 0x422ef2
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], 0
mov dword [ebp + 8], eax
test eax, eax
jne 0x422f86
mov dword [ebp + 8], 0x5aef37
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp + 8]
push eax
call fcn.004035a8
push 0x20
call fcn.0053f7d7
add esp, 0xc
test eax, eax
je 0x422fae
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00402dc9
jmp 0x422fb0
xor eax, eax
push eax
mov ecx, esi
call fcn.00405da8
mov edi, eax
push edi
lea ecx, [esi + 0x3c]
call fcn.00404610
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x42335d
push eax
call fcn.005408bf
add esp, 4
jmp 0x42335d
mov edx, dword [ebp + 8]
mov ebx, dword [edx]
jmp 0x422ff0
mov al, byte [esi + 0xa8]
mov edx, 1
test al, al
jne 0x42300b
cmp dword [esi + 0xac], edx
je 0x423092
mov cl, byte [esi + 0xa8]
cmp cl, 0x3a
je 0x423092
cmp cl, 0x29
je 0x423092
cmp al, 0x28
jne 0x42302f
cmp dword [esi + 0xac], edx
je 0x423092
movsx ecx, cl
add ecx, 0xffffffd3
xor eax, eax
cmp ecx, 0x46
ja case.0x423043.46
movzx ecx, byte [ecx + 0x4233ec]
jmp dword [ecx*4 + 0x4233d4]
mov eax, 8
test edi, edi
je 0x423084
not eax
mov ecx, esi
and ebx, eax
call fcn.00404c7d
jmp 0x422ff0
mov eax, edx
jmp case.0x423043.46
mov eax, 2
jmp case.0x423043.46
mov eax, 4
jmp case.0x423043.46
not eax
mov ecx, esi
mov edi, edx
and ebx, eax
call fcn.00404c7d
jmp 0x422ff0
mov ecx, esi
or ebx, eax
call fcn.00404c7d
jmp 0x422ff0
mov al, byte [esi + 0xa8]
cmp al, 0x3a
je 0x4230c1
cmp al, 0x28
jne 0x4230a8
cmp dword [esi + 0xac], edx
je 0x4230bd
mov edx, dword [ebp + 8]
push 0
mov ecx, esi
mov dword [edx], ebx
call fcn.0040766c
mov edi, eax
jmp 0x42335d
cmp al, 0x3a
jne 0x4230c8
mov ecx, esi
call fcn.00404c7d
push ebx
mov ecx, esi
call fcn.00401131
mov edi, eax
jmp 0x42335d
push 0x1c
call fcn.0053f7d7
xor edi, edi
add esp, 4
cmp eax, edi
je 0x42310d
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov dword [eax], vtable.CListElxT_0_.0
and ecx, 0x10
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], edi
mov dword [eax + 4], vtable.CBufferT_class_ElxInterface__.0
mov dword [eax + 0x18], ecx
mov edi, eax
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x1c], eax
jl 0x42313f
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x423122
mov ebx, 8
mov eax, dword [esi + 0x20]
lea edx, [ebx*4]
push edx
push eax
call fcn.005408f9
add esp, 8
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x24], ebx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [edx + ecx*4], edi
mov eax, 1
add dword [esi + 0x1c], eax
add dword [esi + 8], eax
mov ebx, dword [esi + 8]
push 0x20
mov dword [ebp - 0x18], ebx
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x423198
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
shr ecx, 4
mov dword [eax], vtable.CBracketElxT_char_.0
and ecx, 1
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edx
mov dword [eax + 0xc], vtable.CBufferT_char_.0
mov dword [eax + 0x1c], edx
mov dword [eax + 0x18], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [ebp - 0x1c], eax
jmp 0x42319f
mov dword [ebp - 0x1c], 0
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x1c], eax
jl 0x4231d1
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x4231b4
mov ebx, 8
mov eax, dword [esi + 0x20]
lea edx, [ebx*4]
push edx
push eax
call fcn.005408f9
add esp, 8
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x24], ebx
mov ecx, dword [esi + 0x1c]
mov eax, dword [ebp - 0x1c]
mov edx, dword [esi + 0x20]
mov dword [edx + ecx*4], eax
inc dword [esi + 0x1c]
mov eax, dword [edi + 0x14]
cmp dword [edi + 0xc], eax
jl 0x423212
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x4231f5
mov ebx, 8
mov edx, dword [edi + 0x10]
lea ecx, [ebx*4]
push ecx
push edx
call fcn.005408f9
add esp, 8
mov dword [edi + 0x10], eax
mov dword [edi + 8], eax
mov dword [edi + 0x14], ebx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp + 8]
inc dword [edi + 0xc]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.00401131
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x14]
cmp dword [edi + 0xc], eax
jl 0x423263
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x423246
mov ebx, 8
mov eax, dword [edi + 0x10]
lea edx, [ebx*4]
push edx
push eax
call fcn.005408f9
add esp, 8
mov dword [edi + 0x10], eax
mov dword [edi + 8], eax
mov dword [edi + 0x14], ebx
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0x2c]
mov dword [edx + ecx*4], eax
inc dword [edi + 0xc]
push 0x20
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x4232b8
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
shr ecx, 4
not ecx
mov dword [eax], vtable.CBracketElxT_char_.0
and ecx, 1
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edx
mov dword [eax + 0x1c], edx
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + 0xc], vtable.CBufferT_char_.0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ebx, eax
mov dword [ebp - 0x24], eax
jmp 0x4232bd
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x1c], eax
jl 0x4232f9
add eax, eax
mov dword [ebp + 8], eax
cmp eax, 8
jge 0x4232d6
mov dword [ebp + 8], 8
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x20]
lea ecx, [eax*4]
push ecx
push edx
call fcn.005408f9
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 8]
add esp, 8
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [edx + ecx*4], ebx
inc dword [esi + 0x1c]
mov eax, dword [edi + 0x14]
cmp dword [edi + 0xc], eax
jl 0x42333a
lea ebx, [eax + eax]
cmp ebx, 8
jge 0x42331a
mov ebx, 8
mov ecx, dword [edi + 0x10]
lea eax, [ebx*4]
push eax
push ecx
call fcn.005408f9
mov dword [edi + 0x14], ebx
mov ebx, dword [ebp - 0x24]
add esp, 8
mov dword [edi + 0x10], eax
mov dword [edi + 8], eax
mov edx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi + 0x10]
push 0
push ecx
mov dword [eax + edx*4], ebx
inc dword [edi + 0xc]
lea ecx, [esi + 0x28]
call fcn.004065fa
mov edx, dword [esi + 0x34]
mov eax, dword [ebp - 0x18]
mov dword [edx + eax*4], edi
mov ecx, esi
call fcn.00404c7d
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4