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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
movsx eax, word [ebx + 0x1c]
mov edx, dword [ebx + 0x14]
push esi
xor esi, esi
mov dword [esp + 0x20], ecx
xor ecx, ecx
cmp dword [ebx + 0x24], esi
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x18]
sete cl
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x20]
push edi
mov edi, dword [ebx]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x44], ecx
cmp eax, esi
jne 0x42444a
cmp byte [edi + 6], 0
je 0x42433e
mov edx, dword [edi + 0x10]
mov esi, dword [edx + 0x70]
mov ebx, str.cannot_resume_fiber
call fcn.0041e510
mov eax, dword [edi + 0x10]
mov ebx, dword [eax + 0x70]
push 0
push str.RAW_CALLBACK_ERROR
call fcn.0041f970
add esp, 8
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [edi + 8]
sub esi, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x44]
sar esi, 4
mov dword [esp + 0x20], esi
cmp ecx, dword [eax + 0x40]
jb 0x42435d
mov eax, edi
call fcn.00431f50
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x28]
jne 0x42436a
mov eax, dword [edi + 0x40]
jmp 0x424372
mov edx, dword [eax + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
push eax
xor eax, eax
mov ecx, edi
call fcn.00441040
mov dword [eax + 0x14], fcn.0041fd70
mov ecx, dword [edi + 8]
mov dword [ecx], eax
mov dword [ecx + 8], 6
add dword [edi + 8], 0x10
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
inc esi
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x28], esi
mov esi, dword [eax + 0x60]
push ecx
call fcn.00430050
mov esi, dword [eax]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 8]
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [edx + 8], 0x10
add esp, 4
cmp dword [ebx + 8], 0
jne 0x4243e7
mov ecx, dword [edi + 8]
mov dword [ecx + 8], 0
add dword [edi + 8], 0x10
jmp 0x42498d
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x10]
mov esi, dword [eax + 0x60]
push ecx
call fcn.00430050
mov edx, dword [eax]
mov ecx, dword [edi + 8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [edi + 8], 0x10
mov eax, dword [edi + 8]
mov ebx, dword [ebx + 8]
mov esi, dword [eax - 0x10]
add esp, 4
push ebx
call fcn.00430050
mov edx, dword [eax]
mov ecx, dword [edi + 8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [edi + 8], 0x10
add esp, 4
mov eax, 0xfffffffe
mov esi, edi
call fcn.0041dca0
jmp 0x42498d
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dl_EnterCriticalSection]
mov ecx, dword [ebx + 0x20]
mov edi, dword [ecx + 0x1c]
call dword [sym.imp.KERNEL32.dl_GetCurrentThreadId]
mov dword [esp + 0x20], eax
cmp edi, esi
je 0x424474
cmp dword [edi + 4], eax
je 0x4244ce
mov edi, dword [edi + 0x14]
cmp edi, esi
jne 0x424468
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x1c], esi
mov edi, dword [edx + 0x1c]
mov dword [esp + 0x28], esi
test edi, edi
je 0x424528
lea ebx, [ebx]
mov eax, dword [edi + 4]
push eax
push 0
push 0x40
call dword [sym.imp.KERNEL32.dl_OpenThread]
mov esi, eax
test esi, esi
je 0x4244de
lea ecx, [esp + 0x1c]
push ecx
push esi
call dword [sym.imp.KERNEL32.dl_GetExitCodeThread]
test eax, eax
je 0x4244d7
cmp dword [esp + 0x1c], 0x103
jne 0x4244d7
mov dword [esp + 0x28], edi
mov edi, dword [edi + 0x14]
push esi
call dword [sym.imp.KERNEL32.dl_loseHandle]
jmp 0x42451c
mov dword [esp + 0xc], edi
jmp 0x424576
push esi
call dword [sym.imp.KERNEL32.dl_loseHandle]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4244ed
mov edx, dword [edi + 0x14]
mov dword [eax + 0x14], edx
jmp 0x4244f6
mov eax, dword [edi + 0x14]
mov ecx, dword [ebx + 0x20]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x14]
test eax, eax
je 0x424503
mov edx, dword [edi + 0x10]
mov dword [eax + 0x10], edx
mov esi, edi
mov eax, dword [esi]
mov edi, dword [edi + 0x14]
push eax
call fcn.0045c7f0
add esp, 4
push esi
call fcn.0046acef
add esp, 4
test edi, edi
jne 0x424490
mov esi, dword [esp + 0x28]
push 0x18
call fcn.0046ad29
mov edi, eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
add esp, 4
mov dword [esp + 0xc], edi
mov dword [edi + 0x14], eax
call fcn.0045c8d0
mov ecx, dword [esp + 0x20]
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], ecx
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], esi
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
cmp esi, eax
je 0x424570
mov dword [esi + 0x14], edi
jmp 0x424576
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x1c], edi
mov edi, ebx
mov eax, dword [edi + 0x20]
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dl_LeaveCriticalSection]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov ebx, dword [ecx]
mov esi, dword [ebx + 8]
sub esi, dword [ebx + 0xc]
mov dword [esp + 0x18], ebx
sar esi, 4
cmp dword [eax + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x20], esi
jne 0x4248d2
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jb 0x4245ba
mov eax, ebx
call fcn.00431f50
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x28]
jne 0x4245c7
mov eax, dword [ebx + 0x40]
jmp 0x4245cf
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
push eax
xor eax, eax
mov ecx, ebx
call fcn.00441040
mov dword [eax + 0x14], fcn.0041fd70
mov ecx, dword [ebx + 8]
mov dword [ecx], eax
mov dword [ecx + 8], 6
mov ecx, 0x10
add dword [ebx + 8], ecx
mov edx, dword [edi + 0x20]
mov eax, dword [ebx + 8]
inc esi
add esp, 4
cmp dword [edx + 8], 0
mov dword [esp + 0x28], esi
jne 0x424617
mov dword [eax + 8], 0
add dword [ebx + 8], ecx
jmp 0x4246b8
mov edi, edx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push str.onError
push ebx
call fcn.00422f00
add esp, 8
test eax, eax
je 0x4246a4
mov esi, dword [ebx + 8]
mov eax, dword [esi - 8]
sub esi, 0x10
cmp eax, 4
je 0x424678
cmp eax, 7
jne 0x424651
mov eax, dword [esi]
cmp dword [eax + 8], 0
jne 0x424651
lea esi, [eax + 0x18]
jmp 0x42467d
mov edi, ebx
call fcn.00432180
test eax, eax
jne 0x424660
xor esi, esi
jmp 0x42467d
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x424672
mov eax, ebx
call fcn.00431f50
mov esi, dword [ebx + 8]
sub esi, 0x10
mov esi, dword [esi]
add esi, 0x10
push esi
call dword [sym.imp.KERNEL32.dl_GetCurrentThreadId]
push eax
push 0x494288
call fcn.0046bbd1
add eax, 0x40
push eax
call fcn.0046b364
mov edi, dword [esp + 0x28]
add esp, 0x10
jmp 0x425303
mov edi, str.onError
mov eax, 0xffffd8ee
mov esi, ebx
call fcn.0041ea20
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
cmp eax, 3
jb 0x4246dc
cmp byte [ecx], 0xef
jne 0x4246dc
cmp byte [ecx + 1], 0xbb
jne 0x4246dc
cmp byte [ecx + 2], 0xbf
jne 0x4246dc
add ecx, 3
sub eax, 3
lea edx, [esp + 0x80]
mov dword [esp + 0x98], edx
mov edx, dword [ebx + 8]
sub edx, dword [ebx + 0x20]
mov dword [esp + 0x84], eax
xor eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], eax
push edx
mov edx, dword [ebx + 0x6c]
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x94]
push 0x43fb90
mov eax, ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xa0], 0x422ec0
mov dword [esp + 0x78], ecx
mov dword [esp + 0x88], 0x493cf0
call fcn.0043faa0
mov esi, dword [ebx + 0x10]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esi + 0x10]
add esp, 0xc
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
push 0
push eax
push ecx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
push edx
call eax
mov ecx, dword [esp + 0x2c]
sub dword [esi + 0x44], ecx
add esp, 0x10
cmp dword [esp + 0x10], 0
je 0x4247aa
push 0
push str.THREAD_CALLBACK_ERROR
call fcn.0041f970
add esp, 8
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebx + 8]
mov edx, dword [eax - 0x10]
mov dword [eax], edx
mov ecx, dword [eax - 0xc]
mov dword [eax + 4], ecx
mov edx, dword [eax - 8]
mov dword [eax + 8], edx
add dword [ebx + 8], 0x10
push 0xffffd8f0
mov eax, ebx
call fcn.00422770
mov ecx, dword [esp + 0x10]
mov dword [ecx + 8], eax
mov edx, dword [edi + 0x20]
mov eax, dword [edx + 0x10]
add esp, 4
test eax, eax
je 0x424804
mov esi, dword [esp + 0x18]
mov ebx, eax
call fcn.0041e510
push 0xffffd8f0
mov eax, esi
call fcn.00422770
mov edi, dword [ebp + 8]
add esp, 4
mov dword [esi + 0x38], eax
mov ebx, esi
mov eax, dword [edi + 0x20]
cmp dword [eax + 0x14], 0
jne 0x42481c
mov ecx, dword [ebx + 8]
mov dword [ecx + 8], 0
jmp 0x424985
mov edi, eax
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x14]
push 0x4942c0
push ebx
call fcn.00422f00
add esp, 8
test eax, eax
jne 0x42488b
mov eax, dword [ebx + 8]
sub eax, 0x10
mov dword [esp + 0x3c], eax
sub eax, dword [ebx + 0x20]
lea edx, [esp + 0x3c]
push eax
push edx
push 0x41eec0
xor edx, edx
mov eax, ebx
mov dword [esp + 0x4c], 1
call fcn.0043faa0
add esp, 0xc
test eax, eax
jne 0x42488b
or eax, 0xffffffff
mov esi, ebx
call fcn.0041ddc0
push 0xffffd8f0
mov eax, ebx
call fcn.00422770
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [ecx + 0xc], eax
jmp 0x424989
mov esi, dword [ebx + 8]
mov eax, dword [esi - 8]
sub esi, 0x10
cmp eax, 4
je 0x424678
cmp eax, 7
jne 0x4248b2
mov eax, dword [esi]
cmp dword [eax + 8], 0
jne 0x4248b2
lea esi, [eax + 0x18]
jmp 0x42467d
mov edi, ebx
call fcn.00432180
test eax, eax
jne 0x4248c4
xor esi, esi
jmp 0x42467d
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jmp 0x424669
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x4248e1
mov eax, ebx
call fcn.00431f50
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x28]
jne 0x4248ee
mov eax, dword [ebx + 0x40]
jmp 0x4248f6
mov edx, dword [eax + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
push eax
xor eax, eax
mov ecx, ebx
call fcn.00441040
mov dword [eax + 0x14], fcn.0041fd70
mov ecx, dword [ebx + 8]
mov dword [ecx], eax
mov dword [ecx + 8], 6
add dword [ebx + 8], 0x10
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 8]
mov eax, dword [ebx + 0x10]
mov edi, dword [ebx + 8]
inc esi
add esp, 4
mov dword [esp + 0x28], esi
mov esi, dword [eax + 0x60]
push ecx
call fcn.00430050
mov edx, dword [eax]
mov dword [edi], edx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x10]
mov dword [edi + 8], edx
mov ecx, 0x10
add dword [ebx + 8], ecx
mov eax, dword [eax + 0xc]
mov edi, dword [ebx + 8]
add esp, 4
test eax, eax
jne 0x424966
mov dword [edi + 8], eax
add dword [ebx + 8], ecx
jmp 0x424989
mov ecx, dword [ebx + 0x10]
mov esi, dword [ecx + 0x60]
push eax
call fcn.00430050
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov eax, dword [eax + 8]
add esp, 4
mov dword [edi + 8], eax
add dword [ebx + 8], 0x10
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, 0xc350
jg 0x4249a0
mov ecx, edi
call fcn.0041dba0
mov ecx, dword [esp + 0x24]
mov cl, byte [ecx]
test cl, cl
je 0x424fd1
mov eax, dword [ebp + 0xc]
lea esi, [eax - 4]
lea edx, [eax - 8]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x24]
mov ebx, 0x10
mov dword [esp + 0x60], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
lea eax, [ebx - 0xd]
jmp 0x4249e4
mov edx, dword [esp + 0x10]
movzx ecx, cl
add ecx, 0xffffffda
cmp ecx, 0x53
ja case.0x424cd2.67
movzx ecx, byte [ecx + 0x425548]
jmp dword [ecx*4 + 0x425504]
fild dword [esi + 4]
mov ecx, dword [edi + 8]
add edx, 4
add esi, 4
fstp qword [ecx]
mov dword [esp + 0x10], edx
mov dword [ecx + 8], eax
jmp 0x424fb2
fild dword [esi + 4]
add edx, 4
add esi, 4
mov dword [esp + 0x10], edx
mov edx, dword [esi]
mov ecx, dword [edi + 8]
mov dword [esp + 0xc], esi
test edx, edx
jns 0x424a3b
fadd qword [0x496c08]
fstp qword [ecx]
mov dword [ecx + 8], eax
jmp 0x424fb6
mov ecx, dword [esi + 4]
add esi, 4
add edx, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
cmp ecx, 0xffff
jb 0x424b96
cmp ecx, 0xffffffff
je 0x424b96
push 0xfde9
lea eax, [esp + 0x60]
push eax
push ecx
or edi, 0xffffffff
call fcn.0042f3c0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x424ae9
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
push ecx
push eax
call fcn.0041e420
mov edi, dword [esi + 8]
sub edi, ebx
add esp, 8
cmp dword [edi + 8], 4
jne 0x424aca
mov edx, dword [edi]
test byte [edx + 7], 0x10
je 0x424ac4
mov ebx, str.Invalid_UTF
call fcn.0041e510
mov eax, esi
call fcn.00440f40
mov ebx, 0x10
mov eax, dword [edi]
mov byte [eax + 7], 8
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0046acef
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
add esp, 4
mov eax, 3
jmp case.0x424cd2.67
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 8]
mov esi, dword [esp + 0xc]
mov dword [edx + 8], 0
add dword [eax + 8], ebx
mov edi, eax
mov eax, 3
jmp case.0x424cd2.67
mov edx, dword [edi + 8]
mov dword [edx], ecx
mov dword [edx + 8], 2
jmp 0x424fb6
cmp dword [esp + 0x54], 0
je case.0x4249fa.112
mov ecx, dword [esp + 0x1c]
cmp dword [ecx], 0
je case.0x4249fa.112
push 0xa
push 0
mov ebx, edi
call fcn.0041e8a0
mov edx, dword [esp + 0x24]
mov ebx, dword [edx]
add esp, 8
mov esi, edi
call fcn.0041e510
mov esi, dword [esp + 0x18]
mov edi, 0x493da8
mov eax, 0xfffffffe
call fcn.0041ea20
mov eax, dword [esp + 0xc]
add dword [esp + 0x10], 4
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov edx, esi
call fcn.0042a5a0
mov ebx, 0x10
mov edi, esi
mov esi, dword [esp + 0xc]
lea eax, [ebx - 0xd]
jmp case.0x424cd2.67
mov ecx, dword [esi + 4]
add edx, 4
add esi, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
test ecx, ecx
jne 0x424b0a
mov ecx, dword [edi + 8]
mov dword [ecx + 8], 0
jmp 0x424fb6
mov ecx, dword [edi + 8]
add edx, 4
add esi, 4
mov dword [esp + 0x10], edx
movsx edx, word [esi]
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
mov ecx, dword [edi + 8]
add edx, 4
add esi, 4
mov dword [esp + 0x10], edx
movzx edx, word [esi]
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
mov ecx, dword [edi + 8]
add edx, 4
add esi, 4
mov dword [esp + 0x10], edx
movsx edx, byte [esi]
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
mov ecx, dword [edi + 8]
add edx, 4
add esi, 4
mov dword [esp + 0x10], edx
movzx edx, byte [esi]
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
fild qword [edx + 8]
mov ecx, dword [edi + 8]
add edx, 8
mov dword [esp + 0x10], edx
fstp qword [ecx]
add esi, 8
mov dword [ecx + 8], eax
jmp 0x424fb2
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x10], eax
add esi, 8
jmp 0x424f40
mov ecx, dword [edi + 8]
fld dword [esi + 4]
add edx, 4
fstp qword [ecx]
add esi, 4
mov dword [esp + 0x10], edx
mov dword [ecx + 8], eax
jmp 0x424fb2
mov ecx, dword [edi + 8]
fld qword [edx + 8]
add edx, 8
fstp qword [ecx]
mov dword [esp + 0x10], edx
add esi, 8
mov dword [ecx + 8], eax
jmp 0x424fb2
mov ecx, dword [edi + 8]
add edx, 4
mov dword [esp + 0x10], edx
xor edx, edx
add esi, 4
cmp dword [esi], edx
setne dl
jmp 0x424fa9
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
inc dword [esp + 0x44]
add ecx, 0xffffffbe
cmp ecx, 0x37
ja case.0x424cd2.67
movzx ecx, byte [ecx + 0x4255dc]
jmp dword [ecx*4 + 0x42559c]
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
fild dword [edx]
mov ecx, dword [edi + 8]
add esi, 4
mov dword [ecx + 8], eax
fstp qword [ecx]
jmp 0x424fb2
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
mov edx, dword [edx]
add esi, 4
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
jmp 0x424a2a
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 4]
add dword [esp + 0x10], 4
add eax, 4
mov esi, edi
mov dword [esp + 0xc], eax
call fcn.0041e510
mov esi, dword [esp + 0xc]
mov ebx, 0x10
lea eax, [ebx - 0xd]
jmp case.0x424cd2.67
mov ecx, dword [esi + 4]
add dword [esp + 0x10], 4
add esi, 4
push 0xfde9
lea eax, [esp + 0x6c]
push eax
push ecx
or edi, 0xffffffff
mov dword [esp + 0x18], esi
call fcn.0042f3c0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x424dc5
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x18]
push edx
push eax
call fcn.0041e420
mov edi, dword [esi + 8]
sub edi, ebx
add esp, 8
cmp dword [edi + 8], 4
jne 0x424da6
mov eax, dword [edi]
test byte [eax + 7], 0x10
je 0x424da0
mov ebx, str.Invalid_UTF
call fcn.0041e510
mov eax, esi
call fcn.00440f40
mov ebx, 0x10
mov ecx, dword [edi]
mov byte [ecx + 7], 8
mov edx, dword [esp + 0x14]
push edx
call fcn.0046acef
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
add esp, 4
mov eax, 3
jmp case.0x424cd2.67
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov esi, dword [esp + 0xc]
mov dword [ecx + 8], 0
add dword [eax + 8], ebx
mov edi, eax
mov eax, 3
jmp case.0x424cd2.67
cmp dword [esp + 0x54], 0
je 0x424e50
mov edx, dword [esp + 0x1c]
cmp dword [edx], 0
je 0x424e50
push 0xa
push 0
mov ebx, edi
call fcn.0041e8a0
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
add esp, 8
mov esi, edi
call fcn.0041e510
mov esi, dword [esp + 0x18]
mov edi, 0x493da8
mov eax, 0xfffffffe
call fcn.0041ea20
mov eax, dword [esp + 0xc]
add dword [esp + 0x10], 4
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov edx, esi
call fcn.0042a5a0
mov ebx, 0x10
mov edi, esi
mov esi, dword [esp + 0xc]
lea eax, [ebx - 0xd]
jmp case.0x424cd2.67
mov edx, dword [esi + 4]
add dword [esp + 0x10], 4
add esi, 4
mov eax, edi
mov dword [esp + 0xc], esi
call fcn.0041e670
mov eax, 3
jmp case.0x424cd2.67
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
add dword [esp + 0x10], 4
add esi, 4
mov eax, edi
mov dword [esp + 0xc], esi
call fcn.0041e670
mov eax, 3
jmp case.0x424cd2.67
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
movsx edx, byte [edx]
mov ecx, dword [edi + 8]
add esi, 4
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
movzx edx, byte [edx]
mov ecx, dword [edi + 8]
add esi, 4
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
movsx edx, word [edx]
mov ecx, dword [edi + 8]
add esi, 4
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
movzx edx, word [edx]
mov ecx, dword [edi + 8]
add esi, 4
mov dword [esp + 0x14], edx
mov dword [ecx + 8], eax
fild dword [esp + 0x14]
fstp qword [ecx]
jmp 0x424fb2
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
fild qword [edx]
mov ecx, dword [edi + 8]
add esi, 4
mov dword [ecx + 8], eax
fstp qword [ecx]
jmp 0x424fb2
add dword [esp + 0x10], 4
mov eax, dword [esi + 4]
add esi, 4
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov eax, edi
mov dword [esp + 0x14], esi
call fcn.00455950
add esp, 8
mov eax, 3
jmp case.0x424cd2.67
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
mov ecx, dword [edi + 8]
fld dword [edx]
add esi, 4
fstp qword [ecx]
mov dword [ecx + 8], eax
jmp 0x424fb2
add dword [esp + 0x10], 4
mov edx, dword [esi + 4]
mov ecx, dword [edi + 8]
fld qword [edx]
add esi, 4
fstp qword [ecx]
mov dword [ecx + 8], eax
jmp 0x424fb2
mov ecx, dword [edi + 8]
mov edx, dword [esi + 4]
add dword [esp + 0x10], 4
add esi, 4
mov dword [esp + 0x14], ecx
xor ecx, ecx
cmp dword [edx], ecx
setne cl
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 8], 1
mov dword [ecx], edx
mov dword [esp + 0xc], esi
add dword [edi + 8], ebx
mov ecx, dword [esp + 0x24]
add dword [esp + 0x1c], 4
inc ecx
mov dword [esp + 0x24], ecx
mov cl, byte [ecx]
test cl, cl
jne 0x4249e0
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x424fdd
xor edx, edx
jmp 0x424feb
mov eax, esi
mov ecx, edi
call fcn.0041db20
sub eax, dword [edi + 0x20]
mov edx, eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi + 8]
mov ebx, dword [esp + 0x44]
inc ecx
shl ecx, 4
sub eax, ecx
mov dword [esp + 0x48], eax
sub eax, dword [edi + 0x20]
mov dword [esp + 0x4c], ebx
push eax
lea eax, [esp + 0x4c]
push eax
push 0x41eec0
mov eax, edi
call fcn.0043faa0
add esp, 0xc
cmp ebx, 0xffffffff
jne 0x42502f
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 8]
cmp edx, dword [ecx + 8]
jb 0x42502f
mov dword [ecx + 8], edx
test eax, eax
je 0x42508c
push esi
push str.RAW_CALLBACK_ERROR
mov ebx, edi
call fcn.0041f970
mov eax, dword [esp + 0x28]
mov ecx, eax
xor edx, edx
add esp, 8
shl ecx, 4
cmp eax, edx
jl 0x425081
mov esi, dword [edi + 0xc]
add esi, ecx
cmp dword [edi + 8], esi
jae 0x425074
lea esp, [esp]
mov esi, dword [edi + 8]
mov dword [esi + 8], edx
add dword [edi + 8], 0x10
mov esi, dword [edi + 0xc]
add esi, ecx
cmp dword [edi + 8], esi
jb 0x425060
mov edx, dword [edi + 0xc]
add edx, ecx
mov dword [edi + 8], edx
jmp 0x425307
add ecx, 0x10
add dword [edi + 8], ecx
jmp 0x425307
mov edx, dword [ebp + 8]
cmp dword [edx + 0x24], 0
jne 0x425164
mov esi, ebx
neg esi
mov eax, esi
mov ecx, edi
dec ebx
call fcn.0041db20
cmp eax, 0x492988
jne 0x4250b3
or eax, 0xffffffff
jmp 0x4250b6
mov eax, dword [eax + 8]
dec eax
je 0x425126
sub eax, 2
je 0x42511a
sub eax, 4
jne 0x42510a
push 0x4942c8
push 0x493ea0
mov eax, esi
mov ecx, edi
call fcn.004213a0
add esp, 8
test eax, eax
je 0x42510a
mov eax, esi
mov ecx, edi
call fcn.0041db20
cmp dword [eax + 8], 7
jne 0x4250fd
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
add eax, 0x18
mov dword [esp + 0x30], ecx
jmp 0x425160
xor eax, eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x30], ecx
jmp 0x425160
push 0
push 1
push esi
push edi
call fcn.004230b0
add esp, 0x10
jmp 0x42515b
push esi
push edi
call fcn.0041df70
add esp, 8
jmp 0x42515b
mov eax, esi
mov ecx, edi
call fcn.0041db20
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x425159
cmp ecx, 1
jne 0x425140
cmp dword [eax], 0
je 0x425159
cmp ecx, 3
jne 0x425152
fld qword [eax]
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x425159
mov eax, 1
jmp 0x42515b
xor eax, eax
cdq
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
test ebx, ebx
je 0x425303
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov al, byte [eax]
mov dword [esp + 0x14], ecx
test al, al
je 0x425303
mov edx, dword [ebp + 0xc]
add edx, 0xfffffffc
neg ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x2c], ebx
movzx eax, al
add eax, 0xffffffda
cmp eax, 0x53
ja case.0x4251a9.39
movzx eax, byte [eax + 0x425624]
jmp dword [eax*4 + 0x425614]
add dword [esp + 0xc], 4
jmp case.0x4251e9.67
add dword [esp + 0xc], 8
jmp case.0x4251e9.67
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov ebx, eax
inc eax
mov dword [esp + 0x2c], eax
movsx eax, byte [ecx]
add eax, 0xffffffbe
cmp eax, 0x37
ja case.0x4251e9.67
movzx edx, byte [eax + 0x4256ac]
jmp dword [edx*4 + 0x425678]
push ebx
push edi
call fcn.0041df70
jmp 0x4254d2
push 0
push 1
push ebx
push edi
call fcn.004230b0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
add esp, 0x10
add ecx, 4
mov dword [esp + 0xc], ecx
mov dword [edx], eax
jmp case.0x4251e9.67
mov eax, ebx
mov ecx, edi
call fcn.0041db20
mov ecx, dword [eax + 8]
cmp ecx, 4
je 0x425274
cmp ecx, 7
jne 0x425242
mov ecx, dword [eax]
cmp dword [ecx + 8], 0
jne 0x425242
lea esi, [ecx + 0x18]
jmp 0x425279
mov esi, eax
call fcn.00432180
test eax, eax
je 0x42534d
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x425267
mov eax, esi
call fcn.00431f50
mov eax, ebx
mov ecx, esi
call fcn.0041db20
mov edi, dword [esp + 0x18]
mov esi, dword [eax]
add esi, 0x10
test esi, esi
je case.0x4251e9.115
mov eax, ebx
mov ecx, edi
call fcn.0041de40
test eax, eax
je case.0x4251e9.115
mov eax, ebx
mov ecx, edi
call fcn.0041e020
test al, 0x10
jne case.0x4251e9.115
lea edx, [esp + 0x58]
push 0xfde9
push edx
or edi, 0xffffffff
mov ebx, esi
call fcn.0042f430
mov esi, eax
add esp, 8
test esi, esi
je 0x4252e8
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xc]
add eax, 4
lea edx, [ecx + ecx]
push edx
mov dword [esp + 0x10], eax
mov eax, dword [eax]
push esi
push eax
call fcn.00475900
add esp, 0xc
push esi
call fcn.0046acef
add esp, 4
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
inc dword [esp + 0x14]
inc eax
mov dword [esp + 0x24], eax
mov al, byte [eax]
test al, al
jne 0x425197
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp eax, ecx
jl 0x4254e9
mov edx, dword [edi + 0xc]
shl eax, 4
add edx, eax
cmp dword [edi + 8], edx
jae 0x425334
mov edi, edi
mov edx, dword [edi + 8]
mov dword [edx + 8], ecx
add dword [edi + 8], 0x10
mov edx, dword [edi + 0xc]
add edx, eax
cmp dword [edi + 8], edx
jb 0x425320
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x34]
add ecx, eax
mov eax, dword [esp + 0x30]
mov dword [edi + 8], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [esp + 0x18]
push ebx
lea ebx, [esp + 0x68]
mov eax, edi
call fcn.0041e2e0
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
add esp, 4
push edx
add ecx, 4
push eax
mov eax, dword [ecx]
push eax
mov dword [esp + 0x18], ecx
call fcn.00475900
add esp, 0xc
jmp case.0x4251e9.67
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
add eax, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x3c], ecx
mov eax, ebx
mov ecx, edi
call fcn.0041dde0
cmp eax, 5
jne case.0x4251e9.67
mov eax, ebx
mov esi, edi
call fcn.0041ddc0
mov ecx, edi
call fcn.00426d40
mov esi, dword [esp + 0x3c]
push eax
push 0
push esi
call fcn.00472530
add esp, 0xc
mov eax, esi
mov edx, edi
call fcn.004279f0
add dword [edi + 8], 0xfffffff0
jmp case.0x4251e9.67
push ebx
push edi
call fcn.0041df70
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
add esp, 8
add ecx, 4
mov dword [esp + 0xc], ecx
mov byte [edx], al
jmp case.0x4251e9.67
push ebx
push edi
call fcn.0041df70
mov ecx, dword [esp + 0x14]
add esp, 8
add ecx, 4
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx]
mov word [ecx], ax
jmp case.0x4251e9.67
push 0x4942c8
push 0x493ea0
mov eax, ebx
mov ecx, edi
call fcn.004213a0
add esp, 8
test eax, eax
je case.0x4251e9.108
mov eax, ebx
mov ecx, edi
call fcn.0041e3e0
mov ecx, dword [esp + 0xc]
mov edx, dword [eax]
mov eax, dword [eax + 4]
add ecx, 4
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x4251e9.67
mov eax, ebx
mov ecx, edi
call fcn.0041df20
call fcn.00486da6
mov ecx, dword [esp + 0xc]
add ecx, 4
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x4251e9.67
mov eax, ebx
mov ecx, edi
call fcn.0041df20
fstp qword [esp + 0x48]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [edx], eax
jmp case.0x4251e9.67
mov eax, ebx
mov ecx, edi
call fcn.0041df20
fstp qword [esp + 0x48]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x4251e9.67
push ebx
push edi
call fcn.0041dfe0
mov ecx, dword [esp + 0x14]
add esp, 8
add ecx, 4
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx]
mov dword [ecx], eax
jmp case.0x4251e9.67
mov edx, dword [esp + 0x34]
shl eax, 4
add eax, 0x10
add dword [edi + 8], eax
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8