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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
mov eax, dword [0x513040]
xor eax, esp
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], edx
mov cl, byte [edi + 0x15]
and cl, 2
mov dword [esp + 0x14], edx
mov byte [esp + 0x22], cl
je 0x42faac
mov edx, dword [eax]
mov dword [esp + 0x58], edx
test cl, cl
lea edx, [eax + 4]
cmove edx, eax
movsx eax, byte [esi]
mov dword [esp + 0x24], edx
test eax, eax
je case.default.0x42fdf2
cmp eax, 0x25
je 0x42fb1d
mov edx, esi
mov dword [esp + 0x14], edx
nop
mov al, byte [esi + 1]
inc esi
test al, al
je 0x42fadc
cmp al, 0x25
jne 0x42fad0
mov ebx, dword [edi + 0x10]
mov ecx, esi
sub ecx, edx
add ebx, ecx
cmp ebx, dword [edi + 8]
jb 0x42faf7
push ecx
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x42fb10
test ecx, ecx
je 0x42fb10
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], ebx
push edx
add eax, ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [esi], 0
je case.default.0x42fdf2
mov edx, dword [esp + 0x24]
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
test ecx, ecx
je 0x431225
or ebx, 0xffffffff
mov byte [esp + 0x2f], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x2c], 0
mov byte [esp + 0x2e], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x2d], 0
mov dword [esp + 0x38], ebx
lea eax, [ecx - 0x20]
cmp eax, 0x4c
ja case.0x42fb73.34
movzx eax, byte [eax + 0x4312a4]
jmp dword [eax*4 + 0x431274]
mov byte [esp + 0x12], 1
jmp 0x42fd5b
mov byte [esp + 0x2b], 0x2b
jmp 0x42fd5b
mov byte [esp + 0x2b], 0x20
jmp 0x42fd5b
mov byte [esp + 0x2c], 1
jmp 0x42fd5b
mov byte [esp + 0x23], 1
jmp 0x42fd5b
mov byte [esp + 0x2f], 1
jmp 0x42fd5b
mov byte [esp + 0x2e], 0x2c
jmp 0x42fd5b
inc esi
lea eax, [ecx - 0x30]
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jl 0x42fbfd
mov edi, eax
cmp ecx, 0x39
ja 0x42fbed
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x42fbd6
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x5c], esi
and eax, 0x7fffffff
mov dword [esp + 0x30], eax
cmp ecx, 0x2e
je 0x42fd5a
jmp 0x42fd55
cmp byte [esp + 0x22], 0
je 0x42fc54
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x42fc35
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x48]
jmp 0x42fc5b
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x58]
push ecx
mov dword [edx + 4], eax
call fcn.0045d840
add esp, 4
mov dword [esp + 0x4c], edx
jmp 0x42fc5b
add dword [esp + 0x24], 4
mov eax, dword [edx]
mov dword [esp + 0x30], eax
test eax, eax
jns 0x42fc7f
mov byte [esp + 0x12], 1
cmp eax, 0x80000001
jl 0x42fc77
neg eax
mov dword [esp + 0x30], eax
jmp 0x42fc7f
mov dword [esp + 0x30], 0
mov al, byte [esi + 1]
lea edx, [esi + 1]
movsx ecx, al
cmp al, 0x2e
je 0x42fd5b
cmp al, 0x6c
je 0x42fd5b
mov dword [esp + 0x5c], edx
jmp case.0x42fb73.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
cmp ecx, 0x2a
jne 0x42fd27
cmp byte [esp + 0x22], 0
je 0x42fced
mov ebx, dword [esp + 0x58]
mov edx, dword [ebx + 4]
cmp dword [ebx], edx
jg 0x42fcd0
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov ebx, dword [esp + 0x48]
jmp 0x42fcf4
mov eax, dword [ebx + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
push ecx
mov dword [ebx + 4], eax
call fcn.0045d840
add esp, 4
mov dword [esp + 0x4c], edx
mov ebx, eax
jmp 0x42fcf4
add dword [esp + 0x24], 4
mov ebx, dword [edx]
mov dword [esp + 0x38], ebx
test ebx, ebx
jns 0x42fd1c
cmp ebx, 0x80000001
jl 0x42fd15
movsx ecx, byte [esi + 1]
neg ebx
inc esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x5c], esi
jmp 0x42fd55
or ebx, 0xffffffff
mov dword [esp + 0x38], ebx
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
jmp 0x42fd55
xor ebx, ebx
cmp ecx, 0x30
jl 0x42fd4b
nop
cmp ecx, 0x39
ja 0x42fd47
lea ebx, [ebx + ebx*4]
inc esi
lea ebx, [ebx - 0x18]
lea ebx, [ecx + ebx*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x42fd30
mov dword [esp + 0x5c], esi
and ebx, 0x7fffffff
mov dword [esp + 0x38], ebx
cmp ecx, 0x6c
jne case.0x42fb73.34
dec esi
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
test ecx, ecx
je case.0x42fb73.34
mov edx, dword [esp + 0x24]
jmp 0x42fb60
movsx ecx, byte [esi + 1]
inc esi
mov byte [esp + 0x2d], 1
mov dword [esp + 0x5c], esi
cmp ecx, 0x6c
jne case.0x42fb73.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
mov byte [esp + 0x2d], 2
mov eax, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x18], eax
mov edx, 0x509bc0
mov dword [esp + 0x50], 0x509bc0
mov byte [esp + 0x13], 0x11
nop
movsx eax, byte [edx]
cmp ecx, eax
je 0x42fdcd
add edx, 6
inc esi
cmp edx, 0x509c4a
jl 0x42fdb0
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x50]
jmp 0x42fde6
lea eax, [esi + esi*2]
mov dl, byte [eax*2 + 0x509bc3]
lea ecx, [eax*2 + 0x509bc0]
mov dword [esp + 0x50], ecx
mov byte [esp + 0x13], dl
movzx eax, dl
cmp eax, 0x10
ja case.default.0x42fdf2
jmp dword [eax*4 + 0x4312f4]
mov byte [esp + 0x2d], 1
mov byte [esp + 0x2e], 0
test byte [ecx + 2], 1
je 0x42fe9e
cmp byte [esp + 0x22], 0
je 0x42fe58
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x42fe41
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dl, byte [esp + 0x2b]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jmp 0x42ff27
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
push ecx
mov dword [esi + 4], eax
call fcn.0045d840
add esp, 4
jmp 0x42fe7c
mov al, byte [esp + 0x2d]
mov ecx, dword [esp + 0x18]
test al, al
je 0x42fe74
cmp al, 2
mov eax, dword [ecx]
jne 0x42fe76
add dword [esp + 0x24], 8
mov ecx, dword [ecx + 4]
jmp 0x42fe7e
mov eax, dword [ecx]
add dword [esp + 0x24], 4
cdq
mov ecx, edx
test ecx, ecx
jg 0x42fe30
jl 0x42fe88
test eax, eax
jae 0x42fe30
neg eax
mov dl, 0x2d
mov dword [esp + 0x18], eax
adc ecx, 0
neg ecx
mov dword [esp + 0x1c], ecx
jmp 0x42ff23
cmp byte [esp + 0x22], 0
je 0x42fef0
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x42fecf
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x42ff21
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
push ecx
mov dword [esi + 4], eax
call fcn.0045d840
add esp, 4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov ecx, edx
jmp 0x42ff21
mov al, byte [esp + 0x2d]
mov ecx, dword [esp + 0x18]
test al, al
je 0x42ff10
cmp al, 2
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
jne 0x42ff16
add dword [esp + 0x24], 8
mov ecx, dword [ecx + 4]
jmp 0x42ff1d
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
add dword [esp + 0x24], 4
xor ecx, ecx
mov dword [esp + 0x1c], ecx
xor dl, dl
mov byte [esp + 0x2b], dl
or eax, ecx
jne 0x42ff2f
mov byte [esp + 0x2c], al
cmp byte [esp + 0x2f], 0
je 0x42ff4c
mov ecx, dword [esp + 0x30]
xor eax, eax
test dl, dl
setne al
sub ecx, eax
cmp ebx, ecx
cmovl ebx, ecx
mov dword [esp + 0x38], ebx
cmp ebx, 0x25
jge 0x42ff67
mov esi, 0x46
lea eax, [esp + 0x98]
mov dword [esp + 0x40], esi
mov dword [esp + 0x34], eax
jmp 0x42ffb4
mov eax, ebx
cdq
mov esi, eax
mov ecx, edx
add esi, 0xa
mov dword [esp + 0x40], esi
adc ecx, 0
cmp byte [esp + 0x2e], 0
je 0x42ff96
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add esi, eax
mov dword [esp + 0x40], esi
adc ecx, edx
push ecx
push esi
mov ecx, edi
call fcn.0042f980
mov ecx, eax
mov dword [esp + 0x3c], eax
add esp, 8
mov dword [esp + 0x60], ecx
test ecx, ecx
je case.default.0x42fdf2
dec esi
add esi, eax
cmp byte [esp + 0x13], 0xf
mov dword [esp + 0x14], esi
jne 0x430064
mov eax, dword [esp + 0x18]
mov ebx, 0xcccccccd
mul ebx
lea edi, [ebx - 1]
mov dword [esp + 0x48], eax
mov esi, edx
mov eax, dword [esp + 0x18]
mul edi
mov edi, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x1c]
mul ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x1c]
mov edx, 0xcccccccc
mul edx
add ecx, esi
mov dword [esp + 0x48], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
adc ecx, 0
xor eax, eax
add ebx, ecx
mov ecx, dword [esp + 0x48]
adc eax, eax
add ecx, ebx
adc edx, eax
shrd ecx, edx, 3
shr edx, 3
lea eax, [ecx + ecx*4]
add eax, eax
sub edi, eax
cmp edi, 4
jge 0x430046
push 0
push 0xa
push edx
push ecx
call fcn.004f7120
cmp eax, 1
jne 0x430048
test edx, edx
jne 0x430048
xor edi, edi
mov esi, dword [esp + 0x14]
movzx eax, byte [edi*2 + 0x50a539]
mov byte [esi - 1], al
sub esi, 2
movzx eax, byte [edi*2 + str.thstndrd]
mov byte [esi], al
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x48], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], eax
nop
push eax
push ecx
push ebx
push edi
dec esi
call fcn.004f7120
push dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x40]
push ebx
mov al, byte [eax + ecx]
push edi
mov byte [esi], al
call fcn.004f70b0
mov ecx, dword [esp + 0x3c]
mov ebx, edx
mov edi, eax
mov eax, dword [esp + 0x14]
test ebx, ebx
ja 0x430090
jb 0x4300c8
test edi, edi
jne 0x430090
mov eax, dword [esp + 0x34]
mov ecx, esi
mov ebx, dword [esp + 0x38]
sub eax, ecx
mov edi, dword [esp + 0x64]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x40]
lea edx, [esi - 1]
add edx, eax
cmp edx, ebx
jge 0x4300fd
mov eax, ebx
sub eax, edx
mov edx, ebx
nop
dec ecx
mov byte [ecx], 0x30
sub eax, 1
jne 0x4300f0
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x2e], 0
je 0x430145
lea eax, [edx - 1]
mov ebx, 3
cdq
idiv ebx
mov esi, eax
sub ecx, esi
mov dword [esp + 0x14], ecx
lea ebx, [edx + 1]
xor edx, edx
test esi, esi
jle 0x430141
lea eax, [esi + edx]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
sub ebx, 1
jne 0x43013c
mov al, byte [esp + 0x2e]
inc edx
dec esi
mov ebx, 3
mov byte [edx + ecx], al
inc edx
test esi, esi
jg 0x430120
mov esi, dword [esp + 0x40]
mov al, byte [esp + 0x2b]
test al, al
je 0x430154
dec ecx
mov dword [esp + 0x14], ecx
mov byte [ecx], al
cmp byte [esp + 0x2c], 0
je 0x430184
mov eax, dword [esp + 0x50]
mov al, byte [eax + 5]
test al, al
je 0x430184
movzx eax, al
add eax, 0x504f94
mov dl, byte [eax]
test dl, dl
je 0x430184
dec ecx
lea eax, [eax + 1]
mov byte [ecx], dl
mov dl, byte [eax]
test dl, dl
jne 0x430174
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x34]
dec esi
sub eax, ecx
add esi, eax
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x12]
mov eax, dword [esp + 0x30]
sub eax, esi
mov dword [esp + 0x30], eax
test eax, eax
jle 0x4311ae
test dl, dl
jne 0x430e72
mov dword [esp + 0x3c], eax
xor ecx, ecx
cdq
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x10]
add eax, dword [esp + 0x34]
adc ecx, edx
test ecx, ecx
jl 0x430e5c
jg 0x4301d6
cmp eax, dword [edi + 8]
jb 0x430e5c
push edx
push dword [esp + 0x38]
mov ecx, edi
call fcn.00431340
mov edx, eax
add esp, 8
test edx, edx
jle 0x430e72
jmp 0x430e60
cmp byte [esp + 0x22], 0
je 0x430250
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x43020f
mov dl, byte [esp + 0x13]
xorps xmm0, xmm0
jmp 0x43025d
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 0x10]
test al, 8
je 0x43022d
movsd xmm0, qword [ecx]
mov dl, byte [esp + 0x13]
jmp 0x43025d
test al, 0x24
je 0x430241
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004f72c0
mov dl, byte [esp + 0x13]
jmp 0x43025d
test al, 0x12
je 0x430206
call fcn.004566e0
mov dl, byte [esp + 0x13]
jmp 0x43025d
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 8
movsd xmm0, qword [ecx]
test ebx, ebx
jns 0x430268
mov ebx, 6
jmp 0x430276
cmp ebx, 0x5f5e100
mov eax, 0x5f5e100
cmovg ebx, eax
mov dword [esp + 0x38], ebx
cmp dl, 1
jne 0x430285
mov edx, ebx
neg edx
jmp 0x43029f
cmp dl, 3
jne 0x43029c
test ebx, ebx
mov eax, 1
cmove ebx, eax
mov dword [esp + 0x38], ebx
mov edx, ebx
jmp 0x43029f
lea edx, [ebx + 1]
cmp byte [esp + 0x23], 0
mov ecx, 0x1a
mov eax, 0x10
movaps xmm3, xmm0
cmovne eax, ecx
lea ecx, [esp + 0x70]
push eax
call fcn.004343f0
mov al, byte [esp + 0x75]
add esp, 4
test al, al
je 0x430384
cmp al, 2
jne 0x430304
cmp byte [esp + 0x2f], 0
mov ebx, str.null
mov eax, 0x4fe3f8
cmove ebx, eax
mov esi, ebx
mov dword [esp + 0x14], ebx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4302f0
sub esi, ecx
and esi, 0x3fffffff
jmp 0x430191
cmp byte [esp + 0x2f], 0
je 0x430325
mov eax, dword [esp + 0x7c]
mov ecx, 0x3e8
mov byte [eax], 0x39
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], 1
jmp 0x430388
cmp byte [esp + 0x70], 0x2d
lea ecx, [esp + 0x98]
mov eax, dword [str._Inf]
mov dword [esp + 0x98], eax
mov al, byte [0x4fe400]
mov byte [esp + 0x9c], al
mov dword [esp + 0x14], ecx
je 0x43036b
mov al, byte [esp + 0x2b]
test al, al
je 0x430360
mov byte [esp + 0x98], al
jmp 0x43036b
lea ecx, [esp + 0x99]
mov dword [esp + 0x14], ecx
mov esi, ecx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x430370
sub esi, ecx
and esi, 0x3fffffff
jmp 0x43018d
mov ecx, dword [esp + 0x78]
cmp byte [esp + 0x70], 0x2d
mov edx, 0x2d
movzx eax, byte [esp + 0x2b]
cmove eax, edx
dec ecx
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x40], ecx
cmp al, 3
jne 0x4303d7
dec ebx
cmp byte [esp + 0x2c], 0
mov dword [esp + 0x38], ebx
sete byte [esp + 0x2d]
cmp ecx, 0xfffffffc
jl 0x4303d0
cmp ecx, ebx
jg 0x4303d0
sub ebx, ecx
mov byte [esp + 0x13], 1
mov dword [esp + 0x38], ebx
jmp 0x4303e9
mov byte [esp + 0x13], 2
jmp 0x4303e3
mov dl, byte [esp + 0x23]
mov byte [esp + 0x2d], dl
cmp al, 2
jne 0x4303e9
xor ecx, ecx
mov dword [esp + 0x40], ecx
xor eax, eax
lea esi, [esp + 0x98]
test ecx, ecx
cmovg eax, ecx
cdq
mov dword [esp + 0x1c], eax
mov eax, ebx
mov dword [esp + 0x18], edx
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
adc dword [esp + 0x18], edx
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x18], edx
add eax, 0xf
mov edx, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x2e], 0
mov dword [esp + 0x18], edx
je 0x43045b
test ecx, ecx
jle 0x43045b
add ecx, 2
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
test edx, edx
jl 0x430480
jg 0x430466
cmp eax, 0x46
jbe 0x430480
push edx
push eax
mov ecx, edi
call fcn.0042f980
add esp, 8
mov dword [esp + 0x60], eax
mov esi, eax
test eax, eax
je case.default.0x42fdf2
mov dh, byte [esp + 0x23]
test ebx, ebx
mov eax, dword [esp + 0x34]
setg dl
mov dword [esp + 0x14], esi
or dl, dh
or dl, byte [esp + 0x2c]
mov byte [esp + 0x2c], dl
test al, al
je 0x4304a2
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jns 0x4304b6
mov byte [esi], 0x30
inc esi
jmp 0x43051a
mov edi, dword [esp + 0x40]
mov bl, byte [esp + 0x2e]
nop
cmp ecx, dword [esp + 0x74]
jge 0x4304d5
mov eax, dword [esp + 0x7c]
add eax, ecx
inc ecx
mov dword [esp + 0x1c], ecx
mov al, byte [eax]
jmp 0x4304d7
mov al, 0x30
mov byte [esi], al
inc esi
test bl, bl
je 0x4304fd
mov eax, 0xaaaaaaab
mov ecx, edi
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
mov ecx, dword [esp + 0x1c]
jne 0x4304fd
cmp edi, 1
jbe 0x4304fd
mov byte [esi], 0x2c
inc esi
sub edi, 1
jns 0x4304c0
mov ebx, dword [esp + 0x38]
mov dl, byte [esp + 0x2c]
mov dh, byte [esp + 0x23]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x40]
test dl, dl
je 0x430522
mov byte [esi], 0x2e
inc esi
add eax, 1
jns 0x430535
test ebx, ebx
jle 0x43055b
mov byte [esi], 0x30
dec ebx
inc esi
add eax, 1
js 0x430527
test ebx, ebx
jle 0x43055b
nop dword [eax]
dec ebx
cmp ecx, dword [esp + 0x74]
jge 0x430552
mov eax, dword [esp + 0x7c]
add eax, ecx
inc ecx
mov al, byte [eax]
jmp 0x430554
mov al, 0x30
mov byte [esi], al
inc esi
test ebx, ebx
jg 0x430540
cmp byte [esp + 0x2d], 0
je 0x43058e
test dl, dl
je 0x43058e
cmp byte [esi - 1], 0x30
jne 0x43057a
nop dword [eax]
dec esi
mov byte [esi], 0
cmp byte [esi - 1], 0x30
je 0x430570
cmp byte [esi - 1], 0x2e
jne 0x43058e
test dh, dh
je 0x43058a
mov byte [esi], 0x30
inc esi
jmp 0x43058e
dec esi
mov byte [esi], 0
cmp byte [esp + 0x13], 2
jne 0x430618
mov eax, dword [esp + 0x50]
lea edx, [esi + 2]
mov ecx, dword [esp + 0x78]
dec ecx
mov dword [esp + 0x48], edx
mov ebx, ecx
movzx eax, byte [eax + 4]
neg ebx
test ecx, ecx
cmovns ebx, ecx
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
sets al
lea eax, [eax*2 + 0x2b]
mov byte [esi + 1], al
mov esi, edx
cmp ebx, 0x64
jl 0x4305ee
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + 0x30]
mov byte [esi], al
inc esi
imul eax, ecx, 0x64
sub ebx, eax
mov eax, 0x66666667
imul ebx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + 0x30]
mov byte [esi], al
mov al, cl
shl cl, 2
add al, cl
add al, al
sub bl, al
add bl, 0x30
mov byte [esi + 1], bl
add esi, 2
mov ecx, dword [esp + 0x14]
mov byte [esi], 0
sub esi, ecx
cmp byte [esp + 0x2f], 0
je 0x43018d
mov dl, byte [esp + 0x12]
test dl, dl
jne 0x430e53
mov ebx, dword [esp + 0x30]
cmp esi, ebx
jge 0x430e53
mov eax, ebx
mov edx, ebx
sub eax, esi
mov esi, eax
mov dword [esp + 0x48], eax
cmp ebx, esi
jl 0x430667
mov edi, ecx
sub edi, esi
mov al, byte [edx + edi]
mov byte [edx + ecx], al
dec edx
cmp edx, esi
jge 0x430658
mov edi, dword [esp + 0x64]
xor eax, eax
cmp byte [esp + 0x34], al
setne al
test esi, esi
je 0x430682
push esi
add eax, ecx
push 0x30
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov esi, ebx
jmp 0x43018d
cmp byte [esp + 0x22], 0
jne 0x4311ac
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
add dword [esp + 0x24], 4
mov ecx, dword [ecx]
mov dword [ecx], eax
jmp 0x4311ac
lea ebx, [esp + 0x98]
mov byte [esp + 0x98], 0x25
mov dword [esp + 0x14], ebx
mov esi, 1
jmp 0x430191
cmp byte [esp + 0x22], 0
je 0x43077e
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x430768
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
je 0x430768
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x43070d
cmp byte [ecx + 0x12], 1
jne 0x43070d
mov edx, dword [ecx + 8]
jmp 0x43071b
test dl, 1
jne 0x430768
mov dl, 1
call fcn.00457440
mov edx, eax
mov esi, 1
mov dword [esp + 0x1c], esi
test edx, edx
je 0x430771
mov cl, byte [edx]
mov byte [esp + 0x98], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x43084b
mov cl, byte [edx + esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x43084b
mov byte [esp + esi + 0x98], cl
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 4
jl 0x430743
jmp 0x43084b
mov esi, 1
mov dword [esp + 0x1c], esi
mov byte [esp + 0x98], 0
jmp 0x43084b
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov ecx, dword [ecx]
cmp ecx, 0x80
jae 0x4307a2
mov byte [esp + 0x98], cl
mov esi, 1
jmp 0x430847
mov eax, ecx
cmp ecx, 0x800
jae 0x4307d1
shr eax, 6
and cl, 0x3f
and al, 0x1f
mov esi, 2
sub al, 0x40
add cl, 0x80
mov byte [esp + 0x98], al
mov byte [esp + 0x99], cl
jmp 0x430847
mov dl, cl
and dl, 0x3f
add dl, 0x80
cmp ecx, 0x10000
jae 0x43080d
shr eax, 0xc
mov esi, 3
shr ecx, 6
and al, 0xf
sub al, 0x20
mov byte [esp + 0x9a], dl
and cl, 0x3f
mov byte [esp + 0x98], al
add cl, 0x80
mov byte [esp + 0x99], cl
jmp 0x430847
shr eax, 0x12
mov esi, 4
and al, 7
mov byte [esp + 0x9b], dl
sub al, 0x10
mov byte [esp + 0x98], al
mov eax, ecx
shr eax, 0xc
shr ecx, 6
and al, 0x3f
add al, 0x80
and cl, 0x3f
add cl, 0x80
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], cl
mov dword [esp + 0x1c], esi
cmp ebx, 1
jle 0x4309f3
mov eax, dword [esp + 0x30]
sub eax, ebx
mov dword [esp + 0x48], 1
mov ecx, eax
mov dword [esp + 0x50], 0
inc eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
cmp eax, 1
jle 0x4308d8
cmp byte [esp + 0x12], 0
jne 0x4308d8
mov eax, ecx
xor ecx, ecx
cdq
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x10]
add eax, dword [esp + 0x34]
adc ecx, edx
test ecx, ecx
jl 0x4308b5
jg 0x43089e
cmp eax, dword [edi + 8]
jb 0x4308b5
push edx
push dword [esp + 0x38]
mov ecx, edi
call fcn.00431340
mov edx, eax
add esp, 8
test edx, edx
jle 0x4308d2
jmp 0x4308c0
mov edx, dword [esp + 0x3c]
nop dword [eax]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x4308c0
xor edx, edx
mov dword [esp + 0x30], edx
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x4308f6
push esi
lea edx, [esp + 0x9c]
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x430916
test esi, esi
je 0x430916
push esi
lea eax, [esp + 0x9c]
mov dword [edi + 0x10], ecx
push eax
mov eax, dword [edi + 4]
sub eax, esi
add eax, ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
dec ebx
cmp ebx, 1
jle 0x4309f3
mov ecx, dword [esp + 0x50]
mov eax, esi
mov esi, dword [esp + 0x48]
cdq
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], edx
lea eax, [ebx - 1]
cdq
cmp ecx, edx
jl 0x430949
jg 0x430941
cmp esi, eax
jbe 0x430949
mov ecx, edx
mov esi, eax
mov dword [esp + 0x50], ecx
push ecx
push esi
push dword [esp + 0x48]
push dword [esp + 0x44]
call fcn.004f6f90
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x3c]
add eax, edx
adc ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x43098d
jg 0x43097a
cmp eax, dword [edi + 8]
jb 0x43098d
push dword [esp + 0x34]
mov ecx, edi
push edx
call fcn.00431340
mov edx, dword [esp + 0x44]
add esp, 8
cmp byte [edi + 0x14], 0
jne 0x4309ef
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x18], ecx
sub dword [esp + 0x18], edx
add dword [esp + 0x18], eax
add eax, edx
cmp eax, dword [edi + 8]
jb 0x4309bd
push edx
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x4309d6
test edx, edx
je 0x4309d6
push edx
push dword [esp + 0x1c]
sub ecx, edx
mov dword [edi + 0x10], eax
add ecx, eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x50]
sub ebx, esi
shld ecx, esi, 1
add esi, esi
mov dword [esp + 0x50], ecx
cmp ebx, 1
jg 0x430933
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
jmp 0x430e1b
cmp byte [esp + 0x22], 0
je 0x430a7a
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x430a1f
xor ecx, ecx
mov dl, 5
mov dword [esp + 0x14], ecx
jmp 0x430a89
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x430a37
mov dword [esp + 0x14], ecx
mov dl, 5
jmp 0x430a89
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x430a5a
cmp byte [ecx + 0x12], 1
jne 0x430a5a
mov ecx, dword [ecx + 8]
mov dl, 5
mov dword [esp + 0x14], ecx
jmp 0x430a89
test dl, 1
je 0x430a69
xor ecx, ecx
mov dl, 5
mov dword [esp + 0x14], ecx
jmp 0x430a89
mov dl, 1
call fcn.00457440
mov ecx, eax
mov dword [esp + 0x14], eax
mov dl, 5
jmp 0x430a89
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x430a9b
mov ecx, 0x4fb681
mov dword [esp + 0x14], ecx
jmp 0x430b27
cmp dl, 6
jne 0x430b27
cmp dword [edi + 0x10], 0
jne 0x430b23
cmp dword [edi + 0xc], 0
je 0x430b23
cmp dword [esp + 0x30], 0
jne 0x430b23
test ebx, ebx
jns 0x430b23
cmp byte [edi + 0x14], 0
jne 0x430b23
mov eax, dword [edi]
mov dword [edi + 4], ecx
test eax, eax
je 0x430af2
cmp ecx, dword [eax + 0x168]
jae 0x430af2
cmp ecx, dword [eax + 0x15c]
jb 0x430ae1
mov eax, 0x80
jmp 0x430b00
cmp ecx, dword [eax + 0x160]
jb 0x430af2
movzx eax, word [eax + 0x136]
jmp 0x430b00
push ecx
call dword [0x5131bc]
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [edi + 8], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x430b06
or byte [edi + 0x15], 4
sub ecx, edx
and ecx, 0x7fffffff
xor esi, esi
mov dword [edi + 0x10], ecx
jmp 0x43018d
mov dword [esp + 0x60], ecx
test ebx, ebx
js 0x430b84
cmp byte [esp + 0x23], 0
je 0x430b65
mov esi, ecx
test ebx, ebx
jle 0x430b5e
mov al, byte [esi]
dec ebx
test al, al
je 0x430b5e
inc esi
cmp al, 0xc0
jb 0x430b5a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x430b5a
nop dword [eax]
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
je 0x430b50
test ebx, ebx
jg 0x430b38
sub esi, ecx
jmp 0x430e1b
xor esi, esi
test ebx, ebx
jle 0x43018d
nop
cmp byte [esi + ecx], 0
je 0x43018d
inc esi
cmp esi, ebx
jl 0x430b70
jmp 0x43018d
mov esi, ecx
lea edx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x430b90
sub esi, edx
and esi, 0x7fffffff
jmp 0x430e10
cmp dl, 0xe
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x22], 0
mov dword [esp + 0x38], eax
je 0x430c1d
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x430bd4
mov dword [esp + 0x3c], 0
jmp 0x430c34
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x430be8
xor esi, esi
jmp 0x430c28
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x430c05
cmp byte [ecx + 0x12], 1
jne 0x430c05
mov esi, dword [ecx + 8]
jmp 0x430c28
test dl, 1
je 0x430c0e
xor esi, esi
jmp 0x430c28
mov dl, 1
call fcn.00457440
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x430c2c
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov esi, dword [ecx]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3c], esi
test esi, esi
jne 0x430c4a
cmp byte [esp + 0x13], 0xa
mov esi, str.NULL
mov eax, str._NULL_
cmovne esi, eax
mov dword [esp + 0x1c], esi
mov eax, ebx
xorps xmm0, xmm0
cdq
movlpd qword [esp + 0x40], xmm0
mov ecx, eax
mov ebx, dword [esp + 0x40]
or ecx, edx
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], eax
je 0x430cec
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
nop word [eax + eax]
mov al, byte [ebx + esi]
test al, al
je 0x430cec
cmp al, byte [esp + 0x38]
jne 0x430ca7
add dword [esp + 0x50], 1
adc dword [esp + 0x40], 0
cmp byte [esp + 0x23], 0
je 0x430cd0
and al, 0xc0
cmp al, 0xc0
jne 0x430cd0
mov al, byte [ebx + esi + 1]
and al, 0xc0
cmp al, 0x80
jne 0x430cd0
nop
mov al, byte [ebx + esi + 2]
add ebx, 1
adc edx, 0
and al, 0xc0
cmp al, 0x80
je 0x430cc0
mov eax, dword [esp + 0x34]
add ebx, 1
adc edx, 0
add eax, 0xffffffff
mov dword [esp + 0x34], eax
adc ecx, 0xffffffff
mov dword [esp + 0x18], edx
or eax, ecx
jne 0x430c90
cmp dword [esp + 0x3c], 0
mov esi, dword [esp + 0x50]
je 0x430d06
cmp byte [esp + 0x13], 0xa
mov dword [esp + 0x3c], 1
je 0x430d0e
mov dword [esp + 0x3c], 0
mov ecx, ebx
mov eax, edx
add ecx, 3
adc eax, 0
add esi, ecx
mov ecx, dword [esp + 0x40]
adc ecx, eax
test ecx, ecx
jl 0x430d4f
jg 0x430d2b
cmp esi, 0x46
jbe 0x430d4f
push ecx
push esi
mov ecx, edi
call fcn.0042f980
add esp, 8
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], eax
mov ecx, eax
test eax, eax
je case.default.0x42fdf2
mov edx, dword [esp + 0x18]
jmp 0x430d5a
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x3c], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
je 0x430d79
mov eax, dword [esp + 0x38]
mov esi, 1
mov byte [ecx], al
xor eax, eax
jmp 0x430d81
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x50], eax
movlpd qword [esp + 0x40], xmm0
test edx, edx
jl 0x430dfb
jg 0x430d95
test ebx, ebx
je 0x430dfb
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
nop dword [eax]
mov edx, dword [esp + 0x40]
mov dl, byte [edx + eax]
mov byte [esi + ecx], dl
add esi, 1
mov byte [esp + 0x2f], dl
adc edi, 0
cmp dl, byte [esp + 0x38]
mov edx, dword [esp + 0x18]
jne 0x430ddf
mov al, byte [esp + 0x2f]
mov byte [esi + ecx], al
add esi, 1
mov eax, dword [esp + 0x1c]
adc edi, 0
add dword [esp + 0x40], 1
adc dword [esp + 0x34], 0
cmp dword [esp + 0x34], edx
jl 0x430db0
jg 0x430df7
cmp dword [esp + 0x40], ebx
jb 0x430db0
mov edi, dword [esp + 0x64]
cmp dword [esp + 0x3c], 0
je 0x430e0c
mov edx, dword [esp + 0x38]
mov byte [esi + ecx], dl
add esi, 1
mov byte [esi + ecx], 0
cmp byte [esp + 0x23], 0
je 0x43018d
mov ebx, dword [esp + 0x30]
test ebx, ebx
jle 0x43018d
lea edx, [esi - 1]
test edx, edx
js 0x43018d
mov al, byte [ecx + edx]
lea ecx, [ebx + 1]
and al, 0xc0
cmp al, 0x80
cmovne ecx, ebx
sub edx, 1
mov ebx, ecx
mov ecx, dword [esp + 0x14]
jns 0x430e32
mov dword [esp + 0x30], ebx
jmp 0x43018d
mov ebx, dword [esp + 0x14]
jmp 0x430195
mov edx, dword [esp + 0x3c]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x430e60
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x430e8b
push esi
mov edx, ebx
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x430ea4
test esi, esi
je 0x430ea4
mov eax, dword [edi + 4]
push esi
sub eax, esi
mov dword [edi + 0x10], ecx
add eax, ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x12], 0
je 0x4311e5
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov esi, dword [edi + 0x10]
cdq
add esi, eax
adc ecx, edx
test ecx, ecx
jl 0x430ee0
jg 0x430ec8
cmp esi, dword [edi + 8]
jb 0x430ee0
push edx
push eax
mov ecx, edi
call fcn.00431340
mov edx, eax
add esp, 8
test edx, edx
jle 0x4311e5
jmp 0x430ee4
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x430ee4
jmp 0x4311e5
test byte [edi + 0x15], 1
je case.default.0x42fdf2
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
cmp byte [esp + 0x2c], 0
mov esi, dword [ecx]
je 0x430fa4
test esi, esi
je 0x4311ac
test dword [esi + 4], 0x800
jne 0x4311ac
mov ebx, dword [esi + 8]
test ebx, ebx
jne 0x430f3b
xor ecx, ecx
jmp 0x430f4f
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x430f40
sub ecx, edx
and ecx, 0x3fffffff
mov edx, dword [edi + 0x10]
add edx, ecx
cmp edx, dword [edi + 8]
jb 0x430f68
push ecx
mov edx, ebx
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x430f81
test ecx, ecx
je 0x430f81
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], edx
add eax, edx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [edi]
test byte [esi + 4], 3
jne 0x430f90
mov eax, dword [esi + 0x24]
test eax, eax
jg 0x430f9c
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x430f83
jmp 0x4311ac
mov dword [ecx + 0x44], eax
jmp 0x4311ac
test esi, esi
je 0x4311ac
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4311ac
mov edx, dword [edi + 0x10]
mov ebx, dword [esi]
add edx, ecx
push ecx
cmp edx, dword [edi + 8]
jb 0x430fd2
mov edx, ebx
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x430fe6
mov eax, dword [edi + 4]
sub eax, ecx
mov dword [edi + 0x10], edx
add eax, edx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [edi]
mov esi, dword [esi]
test ebx, ebx
je 0x4311ac
cmp dword [ebx + 0x44], 0xfffffffe
jne 0x4311ac
mov edx, dword [ebx + 0x10c]
test edx, edx
je 0x4311ac
mov edx, dword [edx + 0xf8]
test edx, edx
je 0x4311ac
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x48], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x431021
sub ecx, dword [esp + 0x48]
cmp esi, edx
jb 0x4311ac
lea eax, [edx + ecx]
cmp esi, eax
jae 0x4311ac
sub esi, edx
mov dword [ebx + 0x44], esi
jmp 0x4311ac
test byte [edi + 0x15], 1
je case.default.0x42fdf2
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov esi, dword [ecx]
mov edx, dword [esi + 0xc]
test edx, edx
je 0x4310b9
cmp byte [esp + 0x23], 0
jne 0x4310b9
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x431071
sub ecx, esi
and ecx, 0x3fffffff
mov esi, dword [edi + 0x10]
add esi, ecx
cmp esi, dword [edi + 8]
jb 0x43109a
push ecx
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x4311ac
test ecx, ecx
je 0x4311ac
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], esi
push edx
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memcpy
jmp 0x4311a9
cmp dword [esi + 8], 0
je 0x43115c
mov edx, dword [esi + 4]
test edx, edx
je 0x431136
mov ecx, edx
lea ebx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4310d0
sub ecx, ebx
mov ebx, dword [edi + 0x10]
and ecx, 0x3fffffff
add ebx, ecx
cmp ebx, dword [edi + 8]
jb 0x4310f6
push ecx
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x43110f
test ecx, ecx
je 0x43110f
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], ebx
push edx
add eax, ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [edi + 0x10]
inc ecx
cmp ecx, dword [edi + 8]
jb 0x43112b
push 1
mov edx, 0x4fe414
mov ecx, edi
call fcn.00431630
add esp, 4
jmp 0x431136
mov eax, dword [edi + 4]
mov dword [edi + 0x10], ecx
mov byte [eax + ecx - 1], 0x2e
mov edx, dword [esi + 8]
test edx, edx
jne 0x431144
xor ecx, ecx
jmp 0x431080
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x431150
jmp 0x431078
test edx, edx
je 0x431171
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x431165
jmp 0x431078
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
test ecx, 0x800
je 0x431189
push dword [eax + 0x10]
push str._join__u_
jmp 0x4311a3
test ecx, 0x400
je 0x43119b
push dword [esi + 0x40]
push str._u_ROW_VALUES_CLAUSE
jmp 0x4311a3
push dword [eax + 0x10]
push str._subquery__u_
push edi
call fcn.00431e50
add esp, 0xc
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x4311c9
mov edx, dword [esp + 0x14]
mov ecx, edi
push esi
call fcn.00431630
add esp, 4
jmp 0x4311e5
test esi, esi
je 0x4311e5
mov eax, dword [edi + 4]
push esi
push dword [esp + 0x18]
sub eax, esi
mov dword [edi + 0x10], ecx
add eax, ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x4311fc
mov ecx, dword [edi]
mov edx, ebx
call fcn.0042f0e0
xor eax, eax
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
inc esi
movsx eax, byte [esi]
test eax, eax
jne 0x42fac3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004f5edb
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x10]
inc edx
cmp edx, dword [edi + 8]
jb 0x431254
push 1
mov edx, 0x4fe3f4
mov ecx, edi
call fcn.00431630
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004f5edb
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 4]
mov dword [edi + 0x10], edx
mov byte [eax + edx - 1], 0x25
mov ecx, dword [esp + 0xe4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004f5edb
mov esp, ebp
pop ebp
ret