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

Disassembly:
push ebp
push edi
push esi
mov esi, edx
push ebx
mov ebx, ecx
sub esp, 0x5c
cmp byte [ecx + 0xfb0], 0
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x20], eax
je 0x4969b8
test edx, edx
jg 0x4969a9
mov dword [esp + 4], edx
mov eax, dword [ecx + 0xfb4]
mov dword [esp], eax
call dword [0x519370]
cmp eax, 8
ja case.0x496964.0
jmp dword [eax*4 + 0x4ecb64]
mov eax, dword [0x4ed1e4]
mov edx, dword [0x4ed1e8]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._raiseSSLError__pureZnet_u894_8
sub esp, 8
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
jne 0x4969a9
cmp esi, 0xffffffff
jne 0x4969a9
cmp byte [ebx + 0xfb0], 0
je 0x4969bd
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
cmp edx, 0xffffffff
jne 0x4969a9
cmp edi, 0xffffffff
je 0x496bd0
and ebp, 2
je 0x496c40
lea eax, [edi - 0x2744]
cmp eax, 2
jbe 0x4969a9
cmp edi, 0x2775
je 0x4969a9
cmp edi, 0x274a
je 0x4969a9
cmp edi, 0x40
sete bl
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
jne 0x4969a9
test bl, bl
jne 0x4969a9
cmp byte [esp + 0x20], 0
je 0x496c50
cmp edi, 0x2733
je 0x4969a9
mov eax, dword [0x4ed3f0]
mov edx, dword [0x4ed3f4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._raiseOSError__stdZoserrors_u122
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
cmp byte [esp + 0x20], 0
mov eax, dword [0x4ed230]
mov edx, dword [0x4ed234]
jne 0x4969a9
jmp 0x49697b
cmp byte [esp + 0x20], 0
mov eax, dword [0x4ed230]
mov edx, dword [0x4ed234]
jne 0x4969a9
jmp 0x49697b
mov byte [ebx + 0xfbf], 1
call sym._osLastError__stdZoserrors_u125_0
mov dword [esp], 0x4db1c8
mov dword [esp + 0x24], eax
call sym.___emutls_get_address
cmp byte [eax], 0
mov dword [esp + 0x28], eax
jne 0x4969a9
test ebp, 2
je 0x496ae5
mov edx, dword [esp + 0x24]
lea eax, [edx - 0x2744]
cmp eax, 2
jbe 0x49699b
cmp edx, 0x2775
je 0x49699b
cmp edx, 0x274a
je 0x49699b
cmp edx, 0x40
je 0x49699b
mov dword [esp + 0x48], 0x16
mov dword [esp + 0x4c], 0x4ed1c8
call dword [0x5193ac]
test eax, eax
jne 0x496c80
test esi, esi
je 0x496df0
cmp esi, 0xffffffff
jne 0x496c80
mov edx, 0x10
lea ecx, [esp + 0x48]
call sym._prepareAdd_8
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
lea eax, [edx + eax + 4]
mov dword [eax], 0x74206e69
mov dword [eax + 4], 0x42206568
mov dword [eax + 8], 0x6c204f49
mov dword [eax + 0xc], 0x72657961
mov byte [eax + 0x10], 0
mov eax, dword [esp + 0x48]
add eax, 0x10
jo 0x496e7e
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], edx
mov dword [esp], eax
call sym._raiseOSError__stdZoserrors_u122
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x496b8e
test dword [eax], 0x40000000
je 0x496e90
mov eax, dword [esp + 0x28]
cmp byte [eax], 0
je 0x49699b
jmp 0x4969a9
mov byte [ebx + 0xfbf], 1
mov eax, dword [0x4ed3f0]
mov edx, dword [0x4ed3f4]
jmp 0x49697b
mov eax, dword [0x4ed260]
mov edx, dword [0x4ed264]
jmp 0x49697b
call sym._osLastError__stdZoserrors_u125_0
mov dword [esp], 0x4db1c8
mov edi, eax
call sym.___emutls_get_address
cmp byte [eax], 0
mov esi, eax
jne 0x4969a9
test edi, edi
jne 0x4969c6
mov edi, dword [ebx + 0xfc0]
test edi, edi
jne 0x4969c6
mov ebx, dword [0x4ed174]
mov ecx, dword [0x4ed170]
mov dword [esp], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call sym._raiseOSError__stdZoserrors_u122
movzx ebx, byte [esi]
test bl, bl
jne 0x4969a9
and ebp, 2
jne 0x4969ea
jmp 0x4969f0
xor ebx, ebx
jmp 0x4969f0
mov eax, dword [0x4ed3f0]
mov edx, dword [0x4ed3f4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._raiseOSError__stdZoserrors_u122
jmp 0x4969a9
mov eax, dword [0x4ed1ac]
mov edx, dword [0x4ed1b0]
jmp 0x49697b
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [0x5193a8]
mov ecx, eax
call sym._cstrToNimstr_4
lea ecx, [eax + 1]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
add ecx, ecx
mov dword [esp + 0x30], eax
call sym._rawNewString_4
mov dword [esp + 0x2c], edx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x496e9d
add eax, 1
lea ecx, [edx + ecx + 4]
jo 0x496f2a
mov eax, dword [esp + 0x38]
test eax, eax
js 0x496ee1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x38]
mov dword [esp], ecx
add eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add eax, edx
jo 0x496f2a
mov edx, dword [esp + 0x2c]
lea ecx, [eax + edx + 4]
mov edx, eax
mov eax, 0x203a
mov byte [ecx + 2], 0
mov word [ecx], ax
mov eax, edx
add eax, 2
mov dword [esp + 0x38], eax
jo 0x496f8f
mov eax, dword [esp + 0x30]
add eax, 1
jo 0x496f81
test eax, eax
js 0x496f44
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
lea edx, [edx + ecx + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp], edx
add ecx, 4
mov dword [esp + 4], ecx
call sym._memcpy
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x38]
mov edx, eax
jo 0x496f81
mov eax, dword [esp + 0x2c]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._raiseSSLError__pureZnet_u894_8
sub esp, 8
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x496daf
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
test eax, 0x40000000
je 0x496ed0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x496dc8
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
je 0x496ebf
mov eax, dword [esp + 0x28]
cmp byte [eax], 0
je 0x496b5e
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x496b82
jmp 0x4969a9
mov edx, 0x36
lea ecx, [esp + 0x48]
call sym._prepareAdd_8
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
lea eax, [edx + eax + 4]
mov edx, 0x6c6f
mov dword [eax], 0x61636562
mov dword [eax + 4], 0x20657375
mov dword [eax + 8], 0x45206e61
mov dword [eax + 0xc], 0x7720464f
mov dword [eax + 0x10], 0x6f207361
mov dword [eax + 0x14], 0x72657362
mov dword [eax + 0x18], 0x20646576
mov dword [eax + 0x1c], 0x74616874
mov dword [eax + 0x20], 0x6f697620
mov dword [eax + 0x24], 0x6574616c
mov dword [eax + 0x28], 0x68742073
mov dword [eax + 0x2c], 0x72702065
mov dword [eax + 0x30], 0x636f746f
mov word [eax + 0x34], dx
mov byte [eax + 0x36], 0
mov eax, dword [esp + 0x48]
add eax, 0x36
jno 0x496b5a
call sym._raiseOverflow
jmp 0x496b5e
mov dword [esp], eax
call sym._deallocShared
jmp 0x496b8e
lea eax, [edx + ecx + 4]
mov ecx, 0x203a
mov word [eax], cx
mov byte [eax + 2], 0
mov eax, edx
add eax, 2
jo 0x496f9d
mov edx, eax
jmp 0x496d7f
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._deallocShared
jmp 0x496dc8
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._deallocShared
jmp 0x496daf
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
call sym._raiseRangeErrorI
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
jmp 0x496d1c
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
call sym._raiseOverflow
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
jmp 0x496d1c
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
mov edx, dword [esp + 0x38]
jmp 0x496d7f
call sym._raiseOverflow
mov edx, dword [esp + 0x38]
jmp 0x496d7f
mov dword [esp + 0x38], edx
call sym._raiseOverflow
jmp 0x496d37
mov dword [esp + 0x30], edx
call sym._raiseOverflow
mov edx, dword [esp + 0x30]
jmp 0x496d7f