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

Disassembly:
push 0xffffffffffffffff
push 0x4cc124
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f59b8]
xor eax, esp
push eax
lea eax, [esp + 0x44]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0042c5d0
cmp byte [esi + 0xa8], 0x3f
jne 0x430203
cmp dword [esi + 0xac], 1
jne 0x430203
mov ecx, esi
call fcn.0042c5d0
mov cl, byte [esi + 0xa8]
movsx eax, cl
add eax, 0xffffffdf
xor ebx, ebx
cmp eax, 0x31
mov byte [esp + 0x17], 0x3e
ja case.0x42f8b6.41
movzx eax, byte [eax + 0x430360]
mov ebp, dword [esp + 0x54]
jmp dword [eax*4 + 0x43033c]
mov ebx, 1
mov ecx, esi
call fcn.0042c5d0
push 0xc
call fcn.0049f7e2
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov dword [esp + 0x4c], 0
je 0x42f90b
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
and edx, 0xffffffef
push edx
mov ecx, esi
call fcn.0042f720
mov dword [edi + 4], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [edi + 8], eax
jmp 0x42f90d
xor edi, edi
push edi
mov ecx, esi
mov dword [esp + 0x50], 0xffffffff
call fcn.00429700
mov ecx, esi
mov edi, eax
call fcn.0042c5d0
mov eax, edi
jmp 0x430323
mov al, byte [esi + 0xb8]
cmp al, 0x21
je 0x42f93d
cmp al, 0x3d
je 0x42f942
jmp case.0x42f8b6.39
mov ebx, 1
mov ecx, esi
call fcn.0042c5d0
mov ecx, esi
call fcn.0042c5d0
push 0xc
call fcn.0049f7e2
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov dword [esp + 0x4c], 1
je 0x42f98f
mov ecx, dword [ebp]
or ecx, 0x10
push ecx
mov ecx, esi
call fcn.0042f720
xor edx, edx
test ebx, ebx
sete dl
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [edi + 4], eax
mov dword [edi + 8], edx
jmp 0x42f991
xor edi, edi
push edi
mov ecx, esi
mov dword [esp + 0x50], 0xffffffff
call fcn.00429700
mov edi, eax
test edi, edi
jne 0x4301f5
xor ebx, ebx
cmp byte [esi + 0xa8], 0x50
jne case.0x42f8b6.34
mov ecx, esi
call fcn.0042c5d0
mov al, byte [esi + 0xa8]
cmp al, 0x3c
jne 0x42f9ce
mov byte [esp + 0x17], 0x3e
jmp 0x42f9d6
cmp al, 0x27
jne 0x42f9d6
mov byte [esp + 0x17], al
mov ecx, esi
call fcn.0042c5d0
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
add eax, 1
push 0x1c
mov dword [esi + 0xc], eax
call fcn.0049f7e2
add esp, 4
cmp eax, ebx
je 0x42fa08
mov ecx, dword [ebp]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.0040ce30
jmp 0x42fa0a
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
push 0x20
mov dword [esp + 0x2c], eax
call fcn.0049f7e2
add esp, 4
cmp eax, ebx
je 0x42fa39
mov edx, dword [ebp]
shr edx, 4
and edx, 1
push edx
push 0xffffffffffffffff
mov ecx, eax
call fcn.00429d00
jmp 0x42fa3b
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
push 0x20
mov ebx, eax
call fcn.0049f7e2
add esp, 4
test eax, eax
je 0x42fa6a
mov ecx, dword [ebp]
shr ecx, 4
not ecx
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.00429d00
jmp 0x42fa6c
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
xor ebp, ebp
mov dword [esp + 0x20], eax
lea edi, [ebx + 0xc]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], vtable.CBufferT_char_.0
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebp
cmp byte [esi + 0xa8], 0
mov dword [esp + 0x4c], 2
je 0x42fb00
jmp 0x42fab0
mov al, byte [esi + 0xa8]
cmp al, byte [esp + 0x17]
je 0x42fafc
push 1
push 1
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov byte [esp + 0x24], al
call fcn.0040a540
mov al, byte [esi + 0xa8]
push 1
push 1
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x24], al
call fcn.0040a540
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], 0
jne 0x42fab0
mov ebp, dword [esp + 0x3c]
mov ecx, esi
call fcn.0042c5d0
test ebp, ebp
mov dword [esp + 0x1c], ebp
jne 0x42fb17
mov dword [esp + 0x1c], 0x4d7355
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.00429900
add esp, 8
test eax, eax
je 0x42fb51
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x42fb51
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [ebx + 4], eax
mov ecx, edi
mov dword [edx + 4], eax
call fcn.0042b9d0
mov edi, dword [esp + 0x28]
lea ebp, [edi + 4]
push ebx
mov ecx, ebp
call fcn.0040a0d0
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.0042f720
push eax
mov ecx, ebp
call fcn.0040a0d0
mov edx, dword [esp + 0x20]
push edx
mov ecx, ebp
call fcn.0040a0d0
mov ebx, dword [esp + 0x2c]
push 0
push ebx
lea ecx, [esi + 0x50]
call fcn.0040ac40
mov eax, dword [esi + 0x5c]
mov dword [eax + ebx*4], edi
jmp 0x4300e8
mov ecx, esi
call fcn.0042c5d0
push 8
call fcn.0049f7e2
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov dword [esp + 0x4c], 3
je 0x42f90b
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.0042f720
mov dword [edi], vtable.CIndependentElxT_0_.0
mov dword [edi + 4], eax
jmp 0x42f90d
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], bl
je 0x42fc13
mov edi, edi
movsx eax, byte [esi + 0xa8]
push eax
call fcn.004a0e69
add esp, 4
test eax, eax
je 0x42fc13
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], bl
jne 0x42fbf0
mov al, byte [esi + 0xa8]
cmp al, 0x3c
je 0x42fccc
cmp al, 0x27
je 0x42fcca
xor ecx, ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], vtable.CBufferT_char_.0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ecx
test al, al
mov dword [esp + 0x4c], 5
je 0x42fc84
nop
mov al, byte [esi + 0xa8]
cmp al, 0x29
je 0x42fc80
push 1
push 1
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x60], al
call fcn.0040a540
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], 0
jne 0x42fc50
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x54], ecx
jne 0x42fc98
mov dword [esp + 0x54], 0x4d7355
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.00429900
push 0x20
call fcn.0049f7e2
add esp, 0xc
cmp eax, ebx
je 0x4300d3
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, eax
call fcn.00429d80
jmp 0x4300d5
cmp al, 0x3c
setne bl
sub bl, 1
and bl, 0x17
push 0x20
add bl, 0x27
call fcn.0049f7e2
add esp, 4
test eax, eax
je 0x42fcf1
push 0xfffffffffffffffd
mov ecx, eax
call fcn.00429d80
jmp 0x42fcf3
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
mov edi, eax
mov ecx, esi
mov dword [esp + 0x20], edi
call fcn.0042c5d0
xor ebp, ebp
add edi, 0xc
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], vtable.CBufferT_char_.0
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebp
cmp byte [esi + 0xa8], 0
mov dword [esp + 0x4c], 4
je 0x42fd84
mov al, byte [esi + 0xa8]
cmp al, bl
je 0x42fd80
push 1
push 1
lea edx, [esp + 0x5c]
push edx
mov ecx, edi
mov byte [esp + 0x60], al
call fcn.0040a540
mov al, byte [esi + 0xa8]
push 1
push 1
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x60], al
call fcn.0040a540
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], 0
jne 0x42fd36
mov ebp, dword [esp + 0x3c]
mov ecx, esi
call fcn.0042c5d0
test ebp, ebp
mov dword [esp + 0x54], ebp
jne 0x42fd9b
mov dword [esp + 0x54], 0x4d7355
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.00429900
add esp, 8
test eax, eax
je 0x42fde2
mov ecx, dword [esp + 0x54]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x42fde2
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov ecx, edi
mov dword [ebx + 8], edx
call fcn.0042b9d0
push ebx
lea ecx, [esi + 0x3c]
call fcn.00429df0
mov edi, ebx
jmp 0x4300e8
mov ebx, dword [esp + 0x20]
push ebx
lea ecx, [esi + 0x3c]
call fcn.00429df0
mov edi, ebx
jmp 0x4300e8
push 0x28
call fcn.0049f7e2
add esp, 4
cmp eax, ebx
je 0x42fe0d
mov ecx, eax
call fcn.00429e40
jmp 0x42fe0f
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
mov ebx, eax
lea eax, [esp + 0x30]
xor ebp, ebp
push eax
lea ecx, [esi + 0xb8]
mov byte [esp + 0x34], 0x3f
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call fcn.004296e0
test eax, eax
mov ecx, esi
je 0x42fe58
mov edi, dword [esp + 0x54]
push edi
call fcn.0042f840
mov dword [ebx + 0x1c], eax
jmp 0x42ffa4
call fcn.0042c5d0
mov ebp, dword [esi + 0xb0]
push 0xc
call fcn.0049f7e2
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov dword [esp + 0x4c], 6
je 0x42fea3
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.0042f720
mov dword [edi + 4], eax
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [edi + 8], 1
mov eax, edi
xor edi, edi
jmp 0x42fea7
xor edi, edi
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
mov dword [ebx + 0x1c], eax
mov eax, dword [esi + 0x90]
cmp eax, edi
jne 0x42fec1
mov eax, 0x4d7354
mov ecx, dword [esi + 0xb0]
push 1
sub ecx, ebp
push ecx
add eax, ebp
push eax
lea ecx, [ebx + 8]
call fcn.0040a540
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], vtable.CBufferT_char_.0
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edi
cmp ebp, dword [esi + 0xb0]
mov dword [esp + 0x4c], 7
jge 0x42ff42
nop
cmp ebp, dword [esi + 0x94]
jl 0x42ff0c
xor al, al
jmp 0x42ff15
mov edx, dword [esi + 0x90]
mov al, byte [edx + ebp]
push 1
mov byte [esp + 0x1c], al
push 1
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x3c]
call fcn.0040a540
add ebp, 1
cmp ebp, dword [esi + 0xb0]
jl 0x42ff00
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x1c], eax
jne 0x42ff4a
mov dword [esp + 0x1c], 0x4d7355
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00429900
add esp, 8
or ebp, 0xffffffff
test eax, eax
je 0x42ff7e
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [ecx], al
sete al
cmp eax, edi
je 0x42ff7e
mov edx, dword [esp + 0x2c]
mov dword [ebx + 4], edx
mov dword [ebx + 0x1c], edi
jmp 0x42ff8a
push ebx
lea ecx, [esi + 0x78]
mov dword [ebx + 4], ebp
call fcn.00429e70
mov ecx, esi
call fcn.0042c5d0
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], ebp
call fcn.0040a410
mov edi, dword [esp + 0x54]
xor ebp, ebp
mov eax, dword [edi]
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
mov dword [esp + 0x58], eax
call fcn.0042f400
mov dword [ebx + 0x20], eax
cmp byte [esi + 0xa8], 0x7c
jne 0x42ffe6
mov ecx, esi
call fcn.0042c5d0
mov edx, dword [edi]
push edx
mov ecx, esi
call fcn.0042f720
mov ecx, esi
mov dword [ebx + 0x24], eax
mov edi, ebx
call fcn.0042c5d0
mov eax, edi
jmp 0x430323
mov ecx, esi
mov dword [ebx + 0x24], ebp
mov edi, ebx
call fcn.0042c5d0
mov eax, edi
jmp 0x430323
test cl, cl
je 0x430023
lea ecx, [ecx]
movsx eax, byte [esi + 0xa8]
push eax
call fcn.004a0e69
add esp, 4
test eax, eax
je 0x430023
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], bl
jne 0x430000
mov al, byte [esi + 0xa8]
cmp al, 0x30
jl 0x430107
cmp al, 0x39
jg 0x430107
xor ecx, ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], vtable.CBufferT_char_.0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ecx
test al, al
mov dword [esp + 0x4c], 8
je 0x430094
nop
mov al, byte [esi + 0xa8]
cmp al, 0x29
je 0x430090
push 1
push 1
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x60], al
call fcn.0040a540
mov ecx, esi
call fcn.0042c5d0
cmp byte [esi + 0xa8], 0
jne 0x430060
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x54], ecx
jne 0x4300a8
mov dword [esp + 0x54], 0x4d7355
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.00429900
push 0x20
call fcn.0049f7e2
add esp, 0xc
cmp eax, ebx
je 0x4300d3
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, eax
call fcn.00429d80
jmp 0x4300d5
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
mov edi, eax
push edi
lea ecx, [esi + 0x3c]
call fcn.00429df0
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], 0xffffffff
call fcn.0040a410
mov ecx, esi
call fcn.0042c5d0
mov eax, edi
jmp 0x430323
mov edx, dword [esp + 0x54]
mov edi, dword [edx]
mov ebp, 1
cmp byte [esi + 0xa8], 0
jne 0x430127
cmp dword [esi + 0xac], ebp
je 0x4301ab
mov cl, byte [esi + 0xa8]
cmp cl, 0x3a
je 0x4301ab
cmp cl, 0x29
je 0x4301ab
cmp cl, 0x28
jne 0x430148
cmp dword [esi + 0xac], ebp
je 0x4301ab
movsx ecx, cl
add ecx, 0xffffffd3
xor eax, eax
cmp ecx, 0x46
ja case.0x43015c.46
movzx ecx, byte [ecx + 0x4303ac]
jmp dword [ecx*4 + 0x430394]
mov eax, 8
test ebx, ebx
je 0x43019d
not eax
mov ecx, esi
and edi, eax
call fcn.0042c5d0
jmp 0x430112
mov eax, ebp
jmp case.0x43015c.46
mov eax, 2
jmp case.0x43015c.46
mov eax, 4
jmp case.0x43015c.46
not eax
mov ecx, esi
mov ebx, ebp
and edi, eax
call fcn.0042c5d0
jmp 0x430112
mov ecx, esi
or edi, eax
call fcn.0042c5d0
jmp 0x430112
mov al, byte [esi + 0xa8]
cmp al, 0x3a
je 0x4301e4
cmp al, 0x28
jne 0x4301c1
cmp dword [esi + 0xac], ebp
je 0x4301e0
mov edx, dword [esp + 0x54]
push 0
mov ecx, esi
mov dword [edx], edi
call fcn.0042c670
mov ecx, esi
mov edi, eax
call fcn.0042c5d0
mov eax, edi
jmp 0x430323
cmp al, 0x3a
jne 0x4301eb
mov ecx, esi
call fcn.0042c5d0
push edi
mov ecx, esi
call fcn.0042f720
mov edi, eax
mov ecx, esi
call fcn.0042c5d0
mov eax, edi
jmp 0x430323
push 0x1c
call fcn.0049f7e2
mov ebp, dword [esp + 0x58]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x43023b
mov ecx, dword [ebp]
mov dword [eax], vtable.CListElxT_0_.0
and ecx, 0x10
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 4], vtable.CBufferT_class_ElxInterface__.0
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x18], ecx
jmp 0x43023d
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
add dword [esi + 8], 1
mov edi, dword [esi + 8]
push 0x20
mov dword [esp + 0x24], eax
call fcn.0049f7e2
add esp, 4
cmp eax, ebx
je 0x430288
mov ecx, dword [ebp]
mov dword [eax], vtable.CBracketElxT_char_.0
shr ecx, 4
and ecx, 1
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0xc], vtable.CBufferT_char_.0
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x43028a
xor eax, eax
mov ebp, dword [esp + 0x20]
push eax
mov ecx, esi
add ebp, 4
call fcn.00429700
push eax
mov ecx, ebp
call fcn.0040a0d0
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.0042f720
push eax
mov ecx, ebp
call fcn.0040a0d0
push 0x20
call fcn.0049f7e2
add esp, 4
cmp eax, ebx
je 0x4302f4
mov edx, dword [esp + 0x54]
mov ecx, dword [edx]
shr ecx, 4
mov dword [eax], vtable.CBracketElxT_char_.0
not ecx
and ecx, 1
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0xc], vtable.CBufferT_char_.0
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x4302f6
xor eax, eax
push eax
mov ecx, esi
call fcn.00429700
push eax
mov ecx, ebp
call fcn.0040a0d0
push ebx
push edi
lea ecx, [esi + 0x28]
call fcn.00409ed0
mov eax, dword [esi + 0x34]
mov ebx, dword [esp + 0x20]
mov ecx, esi
mov dword [eax + edi*4], ebx
call fcn.0042c5d0
mov eax, ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4