Function at 0x42d710
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4316c9
mov eax, dword fs:[0]
push eax
sub esp, 0x104
push ebx
push esi
push edi
mov eax, dword [0x43dfd8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
call fcn.0042ad40
test eax, eax
jne 0x42d8df
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x80]
mov edx, dword [eax + 0xc]
lea edi, [ebx + 0x80]
push 0xffffffffffffffff
mov ecx, edi
call edx
mov eax, dword [ebx + 0x20]
push eax
call dword [0x43248c]
push eax
call fcn.0040b681
push 0
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
call fcn.00407b9e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d7a2
push 0x80004005
call fcn.00401290
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0
call fcn.00407b9e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d7d2
push 0x80004005
call fcn.00401290
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 1
mov ecx, dword [0x4420ac]
push str.KDUpdate_List.ini.tmp
push ecx
lea edx, [ebp - 0x14]
push 0x437048
push edx
call fcn.00402160
add esp, 0x10
cmp byte [ebp + 0xc], 0
je 0x42d813
lea esi, [ebx + 0x88]
call fcn.004026a0
mov eax, dword [ebx + 0x20]
push eax
call dword [0x43248c]
push eax
call fcn.0040b681
lea ecx, [ebp - 0x20]
push ecx
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.0040c6d7
mov edx, dword [ebp - 0x20]
cmp dword [edx - 0xc], 0
jne 0x42d8f5
mov eax, dword [ebp - 0x14]
mov esi, dword [0x4322b4]
push eax
call esi
push 9
push str..UTF8.bak
lea ecx, [ebp - 0x14]
call fcn.00402580
mov ecx, dword [ebp - 0x14]
push ecx
call esi
mov edx, dword [ebx + 0x20]
push edx
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
mov ecx, edi
call edx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d8b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d8df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x30]
call fcn.004071db
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
push ecx
push edx
mov byte [ebx + 0x79], 0
call fcn.0042aef0
add esp, 8
mov dword [ebp - 4], 2
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
mov byte [ebp - 4], 1
call fcn.004071f1
push edi
call dword [0x4322f8]
test eax, eax
jne 0x42d9b5
mov esi, dword [0x4322b4]
push edi
call esi
push str..UTF8.bak
lea ecx, [ebp - 0x14]
call fcn.004024f0
mov edi, dword [ebp - 0x14]
push edi
call esi
mov ecx, dword [ebx + 0x20]
push ecx
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov edx, dword [ebx + 0x80]
mov eax, dword [edx + 0x14]
lea ecx, [ebx + 0x80]
call eax
mov byte [ebp - 4], 0
lea eax, [edi - 0x10]
jmp 0x42d8a0
xor esi, esi
xor edx, edx
lea ecx, [ebp - 0x30]
mov byte [ebx + 0x78], 0
mov dword [ebp - 0x30], 0x437498
mov dword [ebp - 0x2c], esi
call fcn.0042b970
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0040f1b0
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0040f1b0
mov eax, 0x4373e4
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], esi
lea esi, [ebp - 0xa8]
call fcn.00402180
mov edx, edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xa
call fcn.0042b970
lea ecx, [ebp - 0x74]
push ecx
lea edx, [ebp - 0x30]
push edx
call fcn.0042b5f0
mov eax, dword [ebp - 0x6c]
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x42daf1
mov esi, dword [0x4322b4]
push edi
call esi
push str..UTF8.bak
lea ecx, [ebp - 0x14]
call fcn.004024f0
mov edi, dword [ebp - 0x14]
push edi
call esi
mov eax, dword [ebx + 0x20]
push eax
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov edx, dword [ebx + 0x80]
mov eax, dword [edx + 0x14]
lea ecx, [ebx + 0x80]
call eax
lea ecx, [ebp - 0xa8]
call fcn.00402220
lea esi, [ebp - 0x48]
mov byte [ebp - 4], 8
call fcn.004026f0
lea esi, [ebp - 0x60]
mov byte [ebp - 4], 7
call fcn.004026f0
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0040f24e
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0040f24e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x42d988
push eax
call fcn.00415b17
add esp, 4
mov byte [ebp - 4], 0
lea eax, [edi - 0x10]
jmp 0x42d8a0
xor esi, esi
test eax, eax
mov dword [ebp - 0x34], esi
jg 0x42dbf4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
push 0
push 0
push 0x1004
push eax
call dword [0x432498]
mov ebx, eax
xor esi, esi
test ebx, ebx
mov dword [ebp - 0x4c], ebx
jle 0x42db44
nop
mov ecx, dword [ebp + 8]
push esi
call fcn.0040ed09
test eax, eax
je 0x42db3d
mov ebx, eax
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x48]
call fcn.00402a30
mov ebx, dword [ebp - 0x4c]
add esi, 1
cmp esi, ebx
jl 0x42db20
mov eax, dword [ebp - 0x84]
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x34], ebx
jle 0x42e3f3
lea ebx, [ebx]
xor esi, esi
cmp dword [ebp - 0x40], esi
mov dword [ebp - 0x1c], esi
jle 0x42de29
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x28], ecx
test esi, esi
jl 0x42ddff
cmp esi, dword [ebp - 0x40]
jge 0x42ddff
test ebx, ebx
jl 0x42ddff
cmp ebx, dword [ebp - 0x84]
jge 0x42ddff
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 4]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x42d798
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + ebx*4]
jmp 0x42dbc0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42de04
test dx, dx
je 0x42dbea
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42de04
add eax, 4
add ecx, 4
test dx, dx
jne 0x42dbc0
xor eax, eax
jmp 0x42de09
mov eax, dword [ebp - 0x6c]
test esi, esi
jl 0x42ddff
cmp esi, eax
jge 0x42ddff
mov ecx, dword [ebp - 0x70]
lea edi, [esi*4]
lea eax, [edi + ecx]
push str.General
push eax
mov dword [ebp - 0x24], edi
call 0x402430
add esp, 8
test al, al
jne 0x42dde8
cmp esi, dword [ebp - 0x6c]
jge 0x42ddff
mov edx, dword [ebp - 0x70]
mov eax, dword [edi + edx]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ebx, str.sFilePath
lea ecx, [ebp - 0x30]
call fcn.0042bb00
push eax
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xb
call fcn.00401430
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dc7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x84]
lea ecx, [ebp - 0xa4]
push ecx
push edx
lea ecx, [ebp - 0x8c]
call fcn.0040f3bf
cmp esi, dword [ebp - 0x6c]
jge 0x42ddff
mov eax, dword [ebp - 0x70]
mov eax, dword [edi + eax]
push eax
lea ecx, [ebp - 0x28]
push ecx
mov ebx, str.sVersion
lea ecx, [ebp - 0x30]
call fcn.0042bb00
push eax
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0xc
call fcn.00401430
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dceb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, dword [ebp - 0x6c]
jge 0x42ddff
mov ecx, dword [ebp - 0x70]
mov edi, dword [edi + ecx]
mov ecx, str.uFileSize
lea esi, [ebp - 0x30]
call fcn.0042b8e0
mov edi, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x6c]
mov dword [ebp - 0x9c], eax
jge 0x42ddff
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x24]
mov eax, dword [esi + edx]
push eax
lea eax, [ebp - 0x78]
push eax
mov ebx, str.sFileURL
lea ecx, [ebp - 0x30]
call fcn.0042bb00
push eax
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xd
call fcn.00401430
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dd67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, dword [ebp - 0x6c]
jge 0x42ddff
mov ecx, dword [ebp - 0x70]
mov eax, dword [esi + ecx]
push eax
lea edx, [ebp - 0x18]
push edx
mov ebx, str.sSha1Hash
lea ecx, [ebp - 0x30]
call fcn.0042bb00
push eax
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xe
call fcn.00401430
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ddbb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, dword [ebp - 0x6c]
jge 0x42ddff
mov ecx, dword [ebp - 0x70]
mov edi, dword [esi + ecx]
lea esi, [ebp - 0x30]
call fcn.0042b820
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x58]
lea ebx, [ebp - 0xa8]
lea ecx, [ebp - 0x60]
call fcn.00402a30
mov esi, dword [ebp - 0x34]
add esi, 1
cmp esi, dword [ebp - 0x4c]
mov dword [ebp - 0x34], esi
jl 0x42dbf1
mov edi, dword [ebp - 0x14]
jmp 0x42dafe
call fcn.004070b1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x42dee3
add dword [ebp - 0x28], 0x1c
add esi, 1
cmp esi, dword [ebp - 0x40]
mov dword [ebp - 0x1c], esi
jl 0x42db74
test ebx, ebx
jl 0x42ddff
cmp ebx, dword [ebp - 0x58]
jge 0x42ddff
mov ecx, dword [ebp - 0x5c]
lea eax, [ebx*8]
sub eax, ebx
cmp dword [ecx + eax*4 + 0x18], 1
lea eax, [ecx + eax*4]
mov dword [ebp - 0x24], eax
je 0x42e3e4
cmp byte [ebp + 0xc], 0
je 0x42e7d1
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x90]
add edi, 0x88
test ebx, ebx
jl 0x42ddff
lea eax, [ebx + 1]
call fcn.004027a0
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 4]
lea edx, [ebx*8]
sub edx, ebx
lea ebx, [eax + edx*4]
mov edi, dword [ebx + 4]
lea esi, [ebx + 4]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e2c4
cmp dword [edi + 0xc], 0
jl 0x42e2b8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42e2b8
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42ded6
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [esi], ecx
jmp 0x42e2c4
cmp ebx, dword [ebp - 0x58]
jge 0x42ddff
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x28]
mov eax, dword [esi + 8]
lea ecx, [ebx*8]
sub ecx, ebx
lea ebx, [edx + ecx*4]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov dword [ebp - 0x24], ebx
call 0x430120
test eax, eax
jle 0x42e0e2
cmp byte [ebp + 0xc], 0
je 0x42e61b
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x90]
add edi, 0x88
test ebx, ebx
jl 0x42ddff
lea eax, [ebx + 1]
call fcn.004027a0
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0x24]
lea eax, [ebx*8]
sub eax, ebx
lea esi, [ecx + eax*4]
mov ecx, dword [edx + 4]
mov edi, dword [esi + 4]
lea ebx, [esi + 4]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42dfab
cmp dword [edi + 0xc], 0
jl 0x42df9f
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42df9f
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42df95
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x42dfab
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.004014b0
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 8]
mov edi, dword [esi + 8]
lea ebx, [esi + 8]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e008
cmp dword [edi + 0xc], 0
jl 0x42dffc
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42dffc
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42dff2
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x42e008
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.004014b0
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 0x10]
mov edi, dword [esi + 0x10]
lea ebx, [esi + 0x10]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e06b
cmp dword [edi + 0xc], 0
jl 0x42e05f
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42e05f
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e055
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x42e06b
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.004014b0
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x14]
mov edi, dword [esi + 0x14]
lea ebx, [esi + 0x14]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e0d4
cmp dword [edi + 0xc], 0
jl 0x42e0c8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42e0c8
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e0b2
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
add ecx, 0x10
mov dword [ebx], ecx
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
jmp 0x42e23f
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.004014b0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
jmp 0x42e23f
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 8]
push eax
push ecx
call 0x430120
test eax, eax
jne 0x42e23f
mov ecx, dword [ebx + 0x14]
cmp dword [ecx - 0xc], eax
je 0x42e23f
mov edi, dword [ebp - 0x28]
mov edx, dword [edi + 0x14]
add edi, 0x14
xor esi, esi
cmp dword [edx - 0xc], esi
jne 0x42e1cd
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
push eax
call dword [0x4322f8]
test eax, eax
je 0x42e1cd
mov dword [ebp - 0x110], 0x437538
mov dword [ebp - 0x108], esi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x104], 0x67452301
mov dword [ebp - 0x100], 0xefcdab89
mov dword [ebp - 0xfc], 0x98badcfe
mov dword [ebp - 0xf8], 0x10325476
mov dword [ebp - 0xf4], 0xc3d2e1f0
mov bl, 0xf
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
push eax
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x110]
call fcn.0042ac20
push eax
mov ecx, edi
mov byte [ebp - 4], 0x10
call fcn.00401430
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42e1bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x24]
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x110], 0x437538
mov edi, dword [edi]
cmp dword [edi - 0xc], esi
je 0x42e23f
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x42d798
mov eax, dword [ebx + 0x14]
mov ecx, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42e20e
test dx, dx
je 0x42e20a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42e20e
add eax, 4
add ecx, 4
test dx, dx
jne 0x42e1e8
xor eax, eax
jmp 0x42e213
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x42e23f
cmp byte [ebp + 0xc], 0
mov ecx, dword [ebp + 8]
je 0x42e23b
mov eax, dword [ecx + 0x90]
mov ebx, dword [ebp - 0x24]
add ecx, 0x88
call fcn.00402a30
jmp 0x42e23f
mov byte [ecx + 0x78], 1
mov eax, dword [ebp - 0x1c]
lea esi, [eax + 1]
cmp esi, dword [ebp - 0x40]
jg 0x42ddff
cmp esi, eax
jl 0x42ddff
cmp esi, 1
jl 0x42ddff
mov ebx, dword [ebp - 0x40]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [ebp - 0x44]
lea edi, [eax + edx*4]
mov edx, dword [edi]
mov eax, dword [edx]
push 0
mov ecx, edi
sub ebx, esi
call eax
test ebx, ebx
je 0x42e2af
mov edx, dword [ebp - 0x44]
lea eax, [ebx*8]
sub eax, ebx
add eax, eax
lea ecx, [esi*8]
add eax, eax
sub ecx, esi
push eax
lea ecx, [edx + ecx*4]
push ecx
push eax
push edi
call fcn.0041539e
push eax
call fcn.00401200
add esp, 0x14
sub dword [ebp - 0x40], 1
jmp 0x42e3de
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.004014b0
mov esi, dword [ebp - 0x24]
mov ecx, dword [esi + 8]
mov edi, dword [ebx + 8]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e320
cmp dword [edi + 0xc], 0
jl 0x42e313
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42e313
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e308
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebx + 8], ecx
jmp 0x42e320
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebx + 8]
call fcn.004014b0
mov edx, dword [esi + 0xc]
mov dword [ebx + 0xc], edx
mov ecx, dword [esi + 0x10]
mov edi, dword [ebx + 0x10]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e37f
cmp dword [edi + 0xc], 0
jl 0x42e372
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42e372
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e367
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebx + 0x10], ecx
jmp 0x42e37f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebx + 0x10]
call fcn.004014b0
mov ecx, dword [esi + 0x14]
mov edi, dword [ebx + 0x14]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42e3d8
cmp dword [edi + 0xc], 0
jl 0x42e3cb
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42e3cb
push eax
call fcn.00401550
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e3c0
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebx + 0x14], ecx
jmp 0x42e3d8
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebx + 0x14]
call fcn.004014b0
mov edx, dword [esi + 0x18]
mov dword [ebx + 0x18], edx
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
add ebx, 1
cmp ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x34], ebx
jl 0x42db60
cmp byte [ebp + 0xc], 0
je 0x42e97b
xor esi, esi
cmp dword [ebp - 0x40], esi
jle 0x42e457
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
lea ebx, [ebx]
test esi, esi
jl 0x42ddff
cmp esi, eax
jge 0x42ddff
test ebx, ebx
je 0x42e44d
mov ecx, dword [ebx + 4]
mov edx, dword [0x4420ac]
push ecx
push edx
lea eax, [ebp - 0x20]
push 0x437048
push eax
call fcn.00402160
mov ecx, dword [ebp - 0x20]
add esp, 0x10
push ecx
call dword [0x4322b4]
mov eax, dword [ebp - 0x40]
add esi, 1
add ebx, 0x1c
cmp esi, eax
jl 0x42e410
mov edx, dword [ebp + 8]
cmp dword [edx + 0x90], 0
je 0x42e97b
push edi
call dword [0x4322b4]
mov esi, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov ebx, str..UTF8.bak
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x1c], esi
add esi, 9
mov ecx, 1
sub ecx, dword [edi - 4]
sub ebx, edi
sub eax, esi
sar ebx, 1
or eax, ecx
jge 0x42e4a0
push esi
lea ecx, [ebp - 0x14]
call fcn.00401310
mov edi, dword [ebp - 0x14]
cmp ebx, dword [ebp - 0x1c]
ja 0x42e4ab
lea eax, [edi + ebx*2]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
push 0x12
push ecx
lea eax, [edi + edx*2]
push 0x12
push eax
call fcn.004153f9
add esp, 0x10
test esi, esi
jl 0x42e7c7
cmp esi, dword [edi - 8]
jg 0x42e7c7
mov dword [edi - 0xc], esi
push edi
mov word [edi + esi*2], 0
call dword [0x4322b4]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x20]
push ecx
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov edx, dword [esi + 0x80]
mov eax, dword [edx + 0x14]
lea ecx, [esi + 0x80]
call eax
lea ecx, [ebp - 0xa8]
call fcn.00402220
mov byte [ebp - 4], 8
cmp dword [ebp - 0x44], 0
je 0x42e55e
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jle 0x42e552
mov esi, dword [ebp - 0x44]
jmp 0x42e540
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42e540
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.004043cd
add esp, 4
mov byte [ebp - 4], 7
cmp dword [ebp - 0x5c], 0
je 0x42e590
mov ebx, dword [ebp - 0x58]
test ebx, ebx
jle 0x42e584
mov esi, dword [ebp - 0x5c]
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42e572
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004043cd
add esp, 4
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0040f24e
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0040f24e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x42e5bb
push eax
call fcn.00415b17
add esp, 4
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x42e5db
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e7b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
call dword [0x4322b4]
mov esi, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov ebx, str..UTF8.bak
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x1c], esi
add esi, 9
mov ecx, 1
sub ecx, dword [edi - 4]
sub ebx, edi
sub eax, esi
sar ebx, 1
or eax, ecx
jge 0x42e654
push esi
lea ecx, [ebp - 0x14]
call fcn.00401310
mov edi, dword [ebp - 0x14]
cmp ebx, dword [ebp - 0x1c]
ja 0x42e65f
lea eax, [edi + ebx*2]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
push 0x12
push ecx
lea eax, [edi + edx*2]
push 0x12
push eax
call fcn.004153f9
add esp, 0x10
test esi, esi
jl 0x42e7c7
cmp esi, dword [edi - 8]
jg 0x42e7c7
mov dword [edi - 0xc], esi
push edi
mov word [edi + esi*2], 0
call dword [0x4322b4]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x20]
push ecx
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov edx, dword [esi + 0x80]
mov eax, dword [edx + 0x14]
lea ecx, [esi + 0x80]
call eax
lea ecx, [ebp - 0xa8]
call fcn.00402220
mov byte [ebp - 4], 8
cmp dword [ebp - 0x44], 0
je 0x42e70e
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x40]
jmp 0x42e6f0
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42e6f0
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.004043cd
add esp, 4
mov byte [ebp - 4], 7
cmp dword [ebp - 0x5c], 0
je 0x42e740
mov ebx, dword [ebp - 0x58]
test ebx, ebx
jle 0x42e734
mov esi, dword [ebp - 0x5c]
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42e722
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004043cd
add esp, 4
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0040f24e
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0040f24e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x42e76b
push eax
call fcn.00415b17
add esp, 4
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x42e78b
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e7b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x80070057
call fcn.00401290
push edi
call dword [0x4322b4]
mov esi, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov ebx, str..UTF8.bak
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x1c], esi
add esi, 9
mov ecx, 1
sub ecx, dword [edi - 4]
sub ebx, edi
sub eax, esi
sar ebx, 1
or eax, ecx
jge 0x42e80a
push esi
lea ecx, [ebp - 0x14]
call fcn.00401310
mov edi, dword [ebp - 0x14]
cmp ebx, dword [ebp - 0x1c]
ja 0x42e815
lea ecx, [edi + ebx*2]
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
push 0x12
push edx
lea ecx, [edi + eax*2]
push 0x12
push ecx
call fcn.004153f9
add esp, 0x10
test esi, esi
jl 0x42e7c7
cmp esi, dword [edi - 8]
jg 0x42e7c7
mov dword [edi - 0xc], esi
push edi
mov word [edi + esi*2], 0
call dword [0x4322b4]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x20]
push edx
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov eax, dword [esi + 0x80]
mov edx, dword [eax + 0x14]
lea ecx, [esi + 0x80]
call edx
lea ecx, [ebp - 0xa8]
call fcn.00402220
mov byte [ebp - 4], 8
cmp dword [ebp - 0x44], 0
je 0x42e8be
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jle 0x42e8b2
mov esi, dword [ebp - 0x44]
lea ecx, [ecx]
mov eax, dword [esi]
mov edx, dword [eax]
push 0
mov ecx, esi
call edx
add esi, 0x1c
sub ebx, 1
jne 0x42e8a0
mov eax, dword [ebp - 0x44]
push eax
call fcn.004043cd
add esp, 4
mov byte [ebp - 4], 7
cmp dword [ebp - 0x5c], 0
je 0x42e8f0
mov ebx, dword [ebp - 0x58]
test ebx, ebx
jle 0x42e8e4
mov esi, dword [ebp - 0x5c]
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42e8d2
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004043cd
add esp, 4
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0040f24e
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0040f24e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x42e91b
push eax
call fcn.00415b17
add esp, 4
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x42e93b
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e7b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
call dword [0x4322b4]
mov esi, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov ebx, str..UTF8.bak
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x1c], esi
add esi, 9
mov ecx, 1
sub ecx, dword [edi - 4]
sub ebx, edi
sub eax, esi
sar ebx, 1
or eax, ecx
jge 0x42e9b4
push esi
lea ecx, [ebp - 0x14]
call fcn.00401310
mov edi, dword [ebp - 0x14]
cmp ebx, dword [ebp - 0x1c]
ja 0x42e9bf
lea ecx, [edi + ebx*2]
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
push 0x12
push edx
lea ecx, [edi + eax*2]
push 0x12
push ecx
call fcn.004153f9
add esp, 0x10
test esi, esi
jl 0x42e7c7
cmp esi, dword [edi - 8]
jg 0x42e7c7
mov dword [edi - 0xc], esi
push edi
mov word [edi + esi*2], 0
call dword [0x4322b4]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x20]
push edx
call dword [0x43248c]
push eax
call fcn.0040b681
push 1
push 0x3f4
mov ecx, eax
call fcn.00407f69
mov ecx, eax
call fcn.004080af
mov eax, dword [esi + 0x80]
mov edx, dword [eax + 0x14]
lea ecx, [esi + 0x80]
call edx
mov al, byte [esi + 0x78]
lea ecx, [ebp - 0xa8]
mov byte [ebp + 0xf], al
call fcn.00402220
mov byte [ebp - 4], 8
cmp dword [ebp - 0x44], 0
je 0x42ea73
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jle 0x42ea67
mov esi, dword [ebp - 0x44]
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42ea55
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.004043cd
add esp, 4
mov byte [ebp - 4], 7
cmp dword [ebp - 0x5c], 0
je 0x42eaa5
mov ebx, dword [ebp - 0x58]
test ebx, ebx
jle 0x42ea99
mov esi, dword [ebp - 0x5c]
mov edx, dword [esi]
mov eax, dword [edx]
push 0
mov ecx, esi
call eax
add esi, 0x1c
sub ebx, 1
jne 0x42ea87
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004043cd
add esp, 4
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0040f24e
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0040f24e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x42ead0
push eax
call fcn.00415b17
add esp, 4
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x42eaf0
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42eb16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, byte [ebp + 0xf]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8