Function at 0x43da40
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x28], 0
push edi
mov eax, edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x18], eax
mov edi, dword [esi]
mov ebx, edi
mov ecx, dword [esi + 0x14]
shr ebx, 9
and ebx, 0x7f
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], ebx
test ecx, 0x7f000000
je 0x43da92
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xc], 0
jne 0x43db06
lea eax, [ebx - 1]
cmp eax, 0x3c
ja case.0x43daa7.3
movzx eax, byte [eax + 0x43f988]
jmp dword [eax*4 + 0x43f97c]
mov eax, edx
cmp dword [eax + 0x1c], 0
je case.0x43daa7.1
shl ebx, 9
xor ebx, edi
and ebx, 0xfe00
xor ebx, edi
mov dword [esi], ebx
mov eax, dword [eax + 0x1c]
push esi
call eax
add esp, 4
test eax, eax
je case.0x43daa7.1
mov eax, dword [esi + 0x14]
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [esi + 0x14], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x8bffffff
mov eax, 1
or ecx, 0xb000000
mov dword [esi + 0x14], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
xor edi, edi
mov ebx, dword [ebp + 8]
cmp ecx, 0x2b
mov edx, ebx
cmovne edx, edi
cmp ecx, 0x30
mov dword [esp + 0x34], edx
mov edx, ebx
cmovne edx, edi
mov dword [esp + 0x20], edx
cmp ecx, 0x10
je 0x43db3c
cmp ecx, 0x14
jbe 0x43db40
cmp ecx, 0x1f
ja 0x43db40
mov dword [esp + 0x2c], ebx
jmp 0x43db40
mov dword [esp + 0x28], ebx
mov edx, dword [ebp + 0xc]
mov edi, ebx
add edx, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], edx
cmp ebx, edx
je 0x43e4a8
mov dl, byte [edi]
mov byte [esp + 0x13], dl
cmp ecx, 0x38
jg 0x43db83
inc dword [esi + 4]
cmp dword [esi + 4], 0x14000
jbe 0x43db83
mov eax, dword [esi + 0x14]
and eax, 0x8cffffff
or eax, 0xc000000
jmp 0x43f947
mov ebx, dword [ebp + 8]
lea eax, [ecx - 1]
cmp eax, 0x3d
ja case.default.0x43db8f
jmp dword [eax*4 + 0x43f9c8]
cmp dl, 0xd
je 0x43e493
cmp dl, 0xa
je 0x43e493
and dword [esi], 0xfffffe03
mov eax, dword [esi]
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0xc], 0xffffffff
cmp dl, 0x48
je 0x43e2de
and eax, 0xfffffffc
mov ecx, 0x12
mov dword [esi], eax
mov dword [esp + 0x14], ecx
jmp 0x43db83
cmp dl, 0xd
je 0x43e3ab
cmp dl, 0xa
jne 0x43e33a
mov ecx, 0x37
mov dword [esp + 0x14], ecx
jmp 0x43db83
movzx ebx, byte [esi + 2]
mov dword [esp + 0x44], edi
nop dword [eax]
cmp edi, dword [esp + 0x1c]
je 0x43e428
mov dl, byte [edi]
mov byte [esp + 0x13], dl
cmp dl, 0xd
je 0x43e3b5
cmp dl, 0xa
je 0x43df5e
mov cl, dl
or cl, 0x20
cmp ebx, 0x16
ja case.0x43dc37.1
movzx eax, byte [ebx + 0x43faf0]
jmp dword [eax*4 + 0x43fac0]
mov eax, dword [ebp + 8]
sub eax, edi
mov edi, 0x14000
add eax, dword [ebp + 0xc]
cmp eax, edi
cmovb edi, eax
push edi
push 0xd
push dword [esp + 0x38]
call fcn.0047e890
push edi
push 0xa
push dword [esp + 0x44]
mov dword [esp + 0x58], eax
call fcn.0047e890
mov edi, eax
add esp, 0x18
mov eax, dword [esp + 0x40]
test eax, eax
je 0x43dc92
test edi, edi
je 0x43dc9b
cmp eax, edi
jae 0x43dc9d
mov ecx, dword [esp + 0x14]
mov edi, eax
dec edi
inc edi
mov dword [esp + 0x30], edi
jmp 0x43dc00
mov eax, dword [esp + 0x1c]
test edi, edi
cmovne eax, edi
mov edi, eax
dec edi
mov ecx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp dl, 0x20
je case.0x43dc37.9
cmp dl, 0x30
jl 0x43f7da
cmp dl, 0x39
jg 0x43f7da
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], eax
cmp eax, 0x19999999
ja 0x43f7da
jb 0x43dcea
cmp ecx, 0x99999998
ja 0x43f7da
movsx eax, dl
sub eax, 0x30
cdq
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 0x38]
shld ecx, eax, 2
shl eax, 2
add dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
shld ecx, eax, 1
add eax, eax
add edi, eax
mov dword [esi + 8], edi
mov edi, dword [esp + 0x30]
adc edx, ecx
mov ecx, dword [esp + 0x14]
inc edi
mov dword [esi + 0xc], edx
mov dword [esp + 0x30], edi
jmp 0x43dc00
inc byte [esi + 3]
mov dl, byte [esi + 3]
cmp dl, 7
ja 0x43dd64
movzx eax, dl
cmp cl, byte [eax + str.chunked]
jne 0x43dd64
mov ecx, dword [esp + 0x14]
cmp dl, 6
jne 0x43dca2
inc edi
mov ebx, 0x13
mov dword [esp + 0x30], edi
jmp 0x43dc00
mov ecx, dword [esp + 0x14]
xor ebx, ebx
inc edi
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp cl, 0x6b
jne 0x43dd8c
mov ecx, dword [esp + 0x14]
inc edi
mov ebx, 0xf
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp cl, 0x63
jne 0x43dda4
mov ecx, dword [esp + 0x14]
inc edi
mov ebx, 0x10
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp cl, 0x75
jne 0x43ddbc
mov ecx, dword [esp + 0x14]
inc edi
mov ebx, 0x11
mov dword [esp + 0x30], edi
jmp 0x43dc00
movzx eax, cl
cmp byte [eax + 0x4b8790], 0
je 0x43dddb
mov ecx, dword [esp + 0x14]
inc edi
mov ebx, 0x12
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp cl, 0x20
mov ecx, dword [esp + 0x14]
je 0x43dca2
xor ebx, ebx
inc edi
mov dword [esp + 0x30], edi
jmp 0x43dc00
inc byte [esi + 3]
mov dl, byte [esi + 3]
cmp dl, 0xa
ja 0x43ddc8
movzx eax, dl
cmp cl, byte [eax + str.keep_alive]
jne 0x43ddc8
mov ecx, dword [esp + 0x14]
cmp dl, 9
jne 0x43dca2
inc edi
mov ebx, 0x14
mov dword [esp + 0x30], edi
jmp 0x43dc00
inc byte [esi + 3]
mov dl, byte [esi + 3]
cmp dl, 5
ja 0x43ddc8
movzx eax, dl
cmp cl, byte [eax + str.close]
jne 0x43ddc8
mov ecx, dword [esp + 0x14]
cmp dl, 4
jne 0x43dca2
inc edi
mov ebx, 0x15
mov dword [esp + 0x30], edi
jmp 0x43dc00
inc byte [esi + 3]
mov dl, byte [esi + 3]
cmp dl, 7
ja 0x43ddc8
movzx eax, dl
cmp cl, byte [eax + str.upgrade]
jne 0x43ddc8
mov ecx, dword [esp + 0x14]
cmp dl, 6
jne 0x43dca2
inc edi
mov ebx, 0x16
mov dword [esp + 0x30], edi
jmp 0x43dc00
mov ecx, dword [esp + 0x14]
cmp dl, 0x2c
jne 0x43dca2
inc edi
mov byte [esi + 3], 0
mov ebx, 0xe
mov dword [esp + 0x30], edi
jmp 0x43dc00
mov ecx, dword [esp + 0x14]
cmp dl, 0x20
je 0x43dca2
xor ebx, ebx
inc edi
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp dl, 0x2c
jne 0x43df2d
cmp ebx, 0x14
jne 0x43deef
or dword [esi], 8
mov ebx, 0xe
mov ecx, dword [esp + 0x14]
inc edi
mov byte [esi + 3], 0
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp ebx, 0x15
jne 0x43df0e
or dword [esi], 0x10
mov ebx, 0xe
mov ecx, dword [esp + 0x14]
inc edi
mov byte [esi + 3], 0
mov dword [esp + 0x30], edi
jmp 0x43dc00
cmp ebx, 0x16
jne 0x43df16
or dword [esi], 0x20
mov ecx, dword [esp + 0x14]
inc edi
mov ebx, 0xe
mov byte [esi + 3], 0
mov dword [esp + 0x30], edi
jmp 0x43dc00
mov ecx, dword [esp + 0x14]
cmp dl, 0x20
je 0x43dca2
inc edi
mov ebx, 0x12
mov dword [esp + 0x30], edi
jmp 0x43dc00
xor ebx, ebx
mov ecx, 0x30
inc edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], edi
jmp 0x43dc00
mov eax, edi
mov ecx, 0x32
sub eax, dword [esp + 0x44]
add dword [esi + 4], eax
cmp dword [esi + 4], 0x14000
mov dword [esp + 0x14], ecx
ja 0x43db6e
cmp dword [esp + 0x20], 0
mov byte [esi + 2], bl
je 0x43db80
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
je 0x43dfeb
mov eax, dword [esi]
mov ecx, dword [esp + 0x20]
and eax, 0xffff65ff
or eax, 0x6400
mov dword [esi], eax
mov eax, edi
sub eax, ecx
push eax
mov eax, dword [esp + 0x1c]
push ecx
push esi
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
test eax, eax
je 0x43dfce
mov eax, dword [esi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f819
mov dl, byte [esp + 0x13]
mov dword [esp + 0x20], 0
jmp 0x43db80
cmp dl, 0x20
je 0x43e059
cmp dl, 9
je 0x43e059
movzx eax, byte [esi + 2]
add eax, 0xffffffed
cmp eax, 3
ja case.default.0x43e00e
jmp dword [eax*4 + 0x43fb08]
or dword [esi], 8
mov ecx, 0x2a
mov dword [esp + 0x14], ecx
jmp 0x43db83
or dword [esi], 0x10
mov ecx, 0x2a
mov dword [esp + 0x14], ecx
jmp 0x43db83
or dword [esi], 4
mov ecx, 0x2a
mov dword [esp + 0x14], ecx
jmp 0x43db83
or dword [esi], 0x20
mov ecx, 0x2a
mov dword [esp + 0x14], ecx
jmp 0x43db83
mov ecx, 0x2f
mov dword [esp + 0x14], ecx
jmp 0x43db83
cmp dl, 0x20
je 0x43e454
cmp dl, 9
je 0x43e454
movzx eax, byte [esi + 2]
add eax, 0xffffffed
cmp eax, 3
ja case.default.0x43e085
jmp dword [eax*4 + 0x43fb18]
or dword [esi], 8
jmp case.default.0x43e085
or dword [esi], 0x10
jmp case.default.0x43e085
or dword [esi], 0x20
jmp case.default.0x43e085
or dword [esi], 4
mov eax, dword [esp + 0x20]
mov ecx, 0x2a
test eax, eax
mov dword [esp + 0x14], ecx
cmove eax, edi
mov dword [esp + 0x20], eax
test eax, eax
je 0x43db83
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
je 0x43e11c
mov eax, dword [esi]
mov ecx, dword [esp + 0x20]
and eax, 0xffff55ff
or eax, 0x5400
mov dword [esi], eax
mov eax, edi
sub eax, ecx
push eax
mov eax, dword [esp + 0x1c]
push ecx
push esi
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
test eax, eax
je 0x43e0ff
mov eax, dword [esi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f7f0
mov dl, byte [esp + 0x13]
mov dword [esp + 0x20], 0
jmp 0x43db83
cmp dl, 0xa
jne 0x43e6f8
mov eax, dword [esi]
test al, 0x40
je 0x43e1a1
mov ebx, dword [esp + 0x18]
mov ecx, 0x3e
mov dword [esp + 0x14], ecx
cmp dword [ebx + 0x24], 0
mov ebx, dword [ebp + 8]
je 0x43db83
and eax, 0xffff7dff
or eax, 0x7c00
mov dword [esi], eax
mov eax, dword [esp + 0x18]
push esi
mov eax, dword [eax + 0x24]
call eax
add esp, 4
test eax, eax
je 0x43e17f
mov eax, dword [esi + 0x14]
and eax, 0x8affffff
or eax, 0xa000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f7f0
mov dl, byte [esp + 0x13]
jmp 0x43db83
and eax, 0xa0
mov ebx, 0x38
mov dword [esp + 0x14], ebx
cmp al, 0xa0
je 0x43e1bd
cmp byte [esi + 0x16], 5
je 0x43e1bd
xor ecx, ecx
jmp 0x43e1c2
mov ecx, closesocket
mov eax, dword [esi + 0x14]
and eax, 0x7fffffff
or eax, ecx
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x43e1f8
push esi
call eax
add esp, 4
sub eax, 0
je 0x43e1f4
sub eax, 1
jne 0x43f7fb
or dword [esi], 0x100
mov dl, byte [esp + 0x13]
test dword [esi + 0x14], 0x7f000000
jne 0x43f80b
mov ecx, dword [esp + 0x14]
jmp 0x43db80
mov ecx, dword [esi + 8]
mov eax, ebx
sub eax, edi
add eax, dword [ebp + 0xc]
cdq
mov ebx, eax
mov eax, dword [esi + 0xc]
cmp eax, edx
ja 0x43e22c
jb 0x43e228
cmp ecx, ebx
jae 0x43e22c
mov ebx, ecx
mov edx, eax
mov esi, dword [esp + 0x24]
test esi, esi
cmove esi, edi
sub ecx, ebx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x3c]
sbb eax, edx
dec edi
add edi, ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x30], edi
mov dword [esi + 0xc], eax
mov eax, ecx
or eax, dword [esi + 0xc]
mov dword [esi + 8], ecx
jne 0x43e7a7
cmp dword [esp + 0x24], 0
mov ecx, 0x3e
mov dl, byte [esp + 0x13]
mov dword [esp + 0x14], ecx
je 0x43db83
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x18], 0
je 0x43e2cd
mov eax, dword [esi]
mov ecx, dword [esp + 0x24]
and eax, 0xffff7dff
or eax, 0x7c00
mov dword [esi], eax
mov eax, edi
sub eax, ecx
inc eax
push eax
mov eax, dword [edx + 0x18]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e2b4
mov eax, dword [esi + 0x14]
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f7f0
mov dl, byte [esp + 0x13]
mov dword [esp + 0x24], 0
jmp 0x43db83
mov edx, dword [esp + 0x18]
mov ecx, 3
mov dword [esp + 0x14], ecx
cmp dword [edx], 0
je 0x43e493
and eax, 0xffff07ff
or eax, 0x600
mov dword [esi], eax
mov eax, dword [edx]
push esi
call eax
add esp, 4
test eax, eax
je 0x43e31c
mov eax, dword [esi + 0x14]
and eax, 0x81ffffff
or eax, 0x1000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f910
jmp 0x43e493
movzx eax, dl
mov al, byte [eax + 0x4b8790]
test al, al
je 0x43f7c8
mov ecx, dword [esp + 0x34]
test ecx, ecx
movsx eax, al
cmove ecx, edi
mov byte [esi + 3], 0
mov dword [esp + 0x34], ecx
add eax, 0xffffff9d
mov ecx, 0x2b
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x43e377.100
movzx eax, byte [eax + 0x43fb3c]
jmp dword [eax*4 + 0x43fb28]
mov byte [esi + 2], 1
jmp 0x43e493
mov byte [esi + 2], 5
jmp 0x43e493
mov byte [esi + 2], 7
jmp 0x43e493
mov byte [esi + 2], 8
jmp 0x43e493
mov byte [esi + 2], 0
jmp 0x43e493
mov ecx, 0x37
jmp 0x43e48f
cmp dword [esp + 0x20], 0
mov ecx, 0x32
mov dword [esp + 0x14], ecx
mov byte [esi + 2], bl
je 0x43e428
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x10], 0
je 0x43e420
mov eax, dword [esi]
mov ecx, dword [esp + 0x20]
and eax, 0xffff65ff
or eax, 0x6400
mov dword [esi], eax
mov eax, edi
sub eax, ecx
push eax
mov eax, dword [edx + 0x10]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e407
mov eax, dword [esi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f8f5
mov dword [esp + 0x20], 0
mov eax, edi
mov byte [esi + 2], bl
sub eax, dword [esp + 0x44]
add dword [esi + 4], eax
cmp dword [esi + 4], 0x14000
ja 0x43db6e
mov edx, dword [esp + 0x1c]
lea eax, [edi - 1]
mov ebx, dword [ebp + 8]
cmp edi, edx
cmovne eax, edi
mov edi, eax
jmp 0x43e497
mov ecx, 0x2c
jmp 0x43e48f
cmp dl, 0xd
je 0x43e493
cmp dl, 0xa
je 0x43e493
mov eax, dword [esi + 0x14]
and eax, 0x8dffffff
or eax, 0xd000000
jmp 0x43f947
cmp dl, 0x54
jne 0x43e67e
mov eax, dword [esi]
and eax, 0xfffffffd
or eax, 1
mov dword [esi], eax
mov ecx, 6
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
inc edi
mov dword [esp + 0x30], edi
cmp edi, edx
jne 0x43db57
mov edx, dword [esp + 0x34]
test edx, edx
je 0x43e4ff
cmp dword [eax + 0xc], 0
je 0x43e4ff
mov eax, edi
shl ecx, 9
xor ecx, dword [esi]
sub eax, edx
push eax
mov eax, dword [esp + 0x1c]
and ecx, 0xfe00
xor dword [esi], ecx
push edx
push esi
mov eax, dword [eax + 0xc]
call eax
add esp, 0xc
test eax, eax
je 0x43e4ea
mov eax, dword [esi + 0x14]
and eax, 0x83ffffff
or eax, 0x3000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
jne 0x43f7f0
cmp dword [esp + 0x20], 0
mov edx, dword [esp + 0x18]
je 0x43e55d
cmp dword [edx + 0x10], 0
je 0x43e55d
shl ecx, 9
mov eax, edi
xor ecx, dword [esi]
and ecx, 0xfe00
xor dword [esi], ecx
mov ecx, dword [esp + 0x20]
sub eax, ecx
push eax
mov eax, dword [edx + 0x10]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e544
mov eax, dword [esi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
jne 0x43f7f0
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x2c], 0
je 0x43e5b3
cmp dword [edx + 4], 0
je 0x43e5b3
shl ecx, 9
mov eax, edi
xor ecx, dword [esi]
and ecx, 0xfe00
xor dword [esi], ecx
mov ecx, dword [esp + 0x2c]
sub eax, ecx
push eax
mov eax, dword [edx + 4]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e59e
mov eax, dword [esi + 0x14]
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
jne 0x43f7f0
cmp dword [esp + 0x24], 0
mov edx, dword [esp + 0x18]
je 0x43e611
cmp dword [edx + 0x18], 0
je 0x43e611
shl ecx, 9
mov eax, edi
xor ecx, dword [esi]
and ecx, 0xfe00
xor dword [esi], ecx
mov ecx, dword [esp + 0x24]
sub eax, ecx
push eax
mov eax, dword [edx + 0x18]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e5f8
mov eax, dword [esi + 0x14]
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
jne 0x43f7f0
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x28], 0
je 0x43e667
cmp dword [edx + 8], 0
je 0x43e667
shl ecx, 9
mov eax, edi
xor ecx, dword [esi]
and ecx, 0xfe00
xor dword [esi], ecx
mov ecx, dword [esp + 0x28]
sub eax, ecx
push eax
mov eax, dword [edx + 8]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e652
mov eax, dword [esi + 0x14]
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
jne 0x43f7f0
mov eax, dword [ebp + 0xc]
shl ecx, 9
xor ecx, dword [esi]
and ecx, 0xfe00
xor dword [esi], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dl, 0x45
jne 0x43f825
and dword [esi], 0xfffffffc
mov ecx, 0x13
mov byte [esi + 0x16], 2
mov byte [esi + 3], 2
jmp 0x43e48f
and dword [esi], 0xfffffe03
mov eax, dword [esi]
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0xc], 0xffffffff
cmp dl, 0xa
je 0x43e6ce
cmp dl, 0xd
je 0x43e6ce
cmp dl, 0x48
jne 0x43f825
mov ecx, 5
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x18]
cmp dword [edx], 0
je 0x43e493
shl ecx, 9
xor ecx, eax
and ecx, 0xfe00
xor ecx, eax
mov dword [esi], ecx
jmp 0x43e300
cmp dl, 0x54
je 0x43e48a
mov eax, dword [esi + 0x14]
and eax, 0x9dffffff
or eax, 0x1d000000
jmp 0x43f947
cmp dl, 0x54
jne 0x43e6f8
mov ecx, 7
jmp 0x43e48f
cmp dl, 0x50
jne 0x43e6f8
mov ecx, 8
jmp 0x43e48f
cmp dl, 0x2f
jne 0x43e6f8
mov ecx, 9
jmp 0x43e48f
lea eax, [edx - 0x30]
cmp al, 9
ja 0x43f837
movsx ax, dl
mov ecx, 0xa
sub ax, 0x30
mov word [esi + 0x10], ax
jmp 0x43e48f
cmp dl, 0x2e
jne 0x43e767
mov ecx, 0xb
jmp 0x43e48f
cmp dl, 0x30
jl 0x43f837
cmp dl, 0x39
jg 0x43f837
mov ax, word [esi + 0x10]
mov cx, ax
shl ax, 2
add cx, ax
movsx ax, dl
add cx, cx
sub ax, 0x30
add cx, ax
mov word [esi + 0x10], cx
mov eax, 0x3e7
cmp cx, ax
ja 0x43f837
mov ecx, dword [esp + 0x14]
jmp 0x43e493
lea eax, [edx - 0x30]
cmp al, 9
ja 0x43f837
movsx ax, dl
mov ecx, 0xc
sub ax, 0x30
mov word [esi + 0x12], ax
jmp 0x43e48f
cmp dl, 0x20
jne 0x43e7e0
mov ecx, 0xd
jmp 0x43e48f
cmp dl, 0x30
jl 0x43f837
cmp dl, 0x39
jg 0x43f837
mov ax, word [esi + 0x12]
mov cx, ax
shl ax, 2
add cx, ax
movsx ax, dl
add cx, cx
sub ax, 0x30
add cx, ax
mov word [esi + 0x12], cx
jmp 0x43e799
lea eax, [edx - 0x30]
cmp al, 9
ja 0x43e82f
movsx eax, dl
mov ecx, 0xe
sub eax, 0x30
mov word [esi + 0x14], ax
jmp 0x43e48f
cmp dl, 0x20
je 0x43e493
mov eax, dword [esi + 0x14]
and eax, 0x8fffffff
or eax, 0xf000000
jmp 0x43f947
lea eax, [edx - 0x30]
cmp al, 9
ja 0x43e880
mov ax, word [esi + 0x14]
mov cx, ax
shl ax, 2
add cx, ax
movsx eax, dl
add cx, cx
sub cx, 0x30
add cx, ax
mov word [esi + 0x14], cx
cmp cx, 0x3e7
ja 0x43e838
mov ecx, dword [esp + 0x14]
jmp 0x43e493
cmp dl, 0xa
je 0x43e9a1
cmp dl, 0xd
je 0x43e8a2
cmp dl, 0x20
jne 0x43e838
mov ecx, 0xf
jmp 0x43e48f
cmp dl, 0xd
jne 0x43e8ac
mov ecx, 0x11
jmp 0x43e48f
cmp dl, 0xa
mov edx, dword [esp + 0x1c]
jne 0x43e8c3
mov ecx, 0x2a
mov dword [esp + 0x14], ecx
jmp 0x43e497
mov eax, dword [esp + 0x28]
mov ecx, 0x10
test eax, eax
mov dword [esp + 0x14], ecx
mov byte [esi + 3], 0
cmove eax, edi
mov dword [esp + 0x28], eax
jmp 0x43e497
cmp dl, 0xd
jne 0x43e960
cmp dword [esp + 0x28], 0
mov ecx, 0x11
mov dword [esp + 0x14], ecx
je 0x43e493
mov edx, dword [esp + 0x18]
cmp dword [edx + 8], 0
je 0x43e953
mov eax, dword [esi]
and eax, 0xffff23ff
or eax, 0x2200
mov ecx, dword [esp + 0x28]
mov dword [esi], eax
mov eax, edi
sub eax, ecx
push eax
mov eax, dword [edx + 8]
push ecx
push esi
call eax
add esp, 0xc
test eax, eax
je 0x43e93a
mov eax, dword [esi + 0x14]
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f910
mov dword [esp + 0x28], 0
jmp 0x43e493
cmp dl, 0xa
jne 0x43e493
cmp dword [esp + 0x28], 0
mov ecx, 0x2a
mov dword [esp + 0x14], ecx
je 0x43e493
mov edx, dword [esp + 0x18]
cmp dword [edx + 8], 0
je 0x43e953
mov eax, dword [esi]
and eax, 0xffff55ff
or eax, 0x5400
jmp 0x43e911
cmp dl, 0xa
jne 0x43e6f8
mov ecx, 0x2a
jmp 0x43e48f
cmp dl, 0xd
je 0x43e493
cmp dl, 0xa
je 0x43e493
and dword [esi], 0xfffffe03
mov al, dl
or al, 0x20
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0xc], 0xffffffff
cmp al, 0x61
jb case.0x43e9fc.69
cmp al, 0x7a
ja case.0x43e9fc.69
movsx eax, dl
add eax, 0xffffffbf
mov byte [esi + 0x16], 0
mov byte [esi + 3], 1
cmp eax, 0x14
ja case.0x43e9fc.69
jmp dword [eax*4 + 0x43fb50]
mov byte [esi + 0x16], 0x13
jmp 0x43ea5b
mov byte [esi + 0x16], 0x10
jmp 0x43ea5b
mov byte [esi + 0x16], 5
jmp 0x43ea5b
mov byte [esi + 0x16], 0
jmp 0x43ea5b
mov byte [esi + 0x16], 1
jmp 0x43ea5b
mov byte [esi + 0x16], 2
jmp 0x43ea5b
mov byte [esi + 0x16], 9
jmp 0x43ea5b
mov byte [esi + 0x16], 0xa
jmp 0x43ea5b
mov byte [esi + 0x16], 0x19
jmp 0x43ea5b
mov byte [esi + 0x16], 6
jmp 0x43ea5b
mov byte [esi + 0x16], 3
jmp 0x43ea5b
mov byte [esi + 0x16], 0x14
jmp 0x43ea5b
mov byte [esi + 0x16], 0x1a
jmp 0x43ea5b
mov byte [esi + 0x16], 7
jmp 0x43ea5b
mov byte [esi + 0x16], 0xf
mov eax, dword [esp + 0x18]
mov ecx, 0x13
mov dword [esp + 0x14], ecx
cmp dword [eax], 0
je 0x43eeea
mov eax, dword [esi]
and eax, 0xffff27ff
or eax, 0x2600
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
jmp 0x43e302
test dl, dl
je case.0x43e9fc.69
mov bl, byte [esi + 0x16]
movzx eax, bl
mov eax, dword [eax*4 + 0x4b8700]
mov dword [esp + 0x44], eax
cmp dl, 0x20
jne 0x43ead4
mov cl, byte [esi + 3]
mov esi, dword [esp + 0x44]
movzx eax, cl
cmp byte [eax + esi], 0
mov esi, dword [esp + 0x3c]
jne 0x43ead4
mov ebx, 0x14
inc cl
mov byte [esi + 3], cl
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp + 8]
jmp 0x43e493
mov cl, byte [esi + 3]
mov esi, dword [esp + 0x44]
movzx eax, cl
cmp dl, byte [eax + esi]
mov esi, dword [esp + 0x3c]
je 0x43ed69
cmp bl, 5
jne 0x43eb36
cmp cl, 1
jne 0x43eb0f
cmp dl, 0x48
jne 0x43eb0f
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x16
jmp 0x43e493
cmp cl, 2
jne case.0x43e9fc.69
cmp dl, 0x50
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 8
jmp 0x43e493
cmp bl, 0xa
jne 0x43ebe2
cmp cl, 1
jne 0x43eb9c
cmp dl, 0x4f
jne 0x43eb5e
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0xb
jmp 0x43e493
cmp cl, 1
jne 0x43eb9c
cmp dl, 0x45
jne 0x43eb7d
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x17
jmp 0x43e493
cmp cl, 1
jne 0x43eb9c
cmp dl, 0x2d
jne 0x43eb9c
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x18
jmp 0x43e493
cmp cl, 2
jne 0x43ebbb
cmp dl, 0x41
jne 0x43ebbb
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x15
jmp 0x43e493
cmp cl, 3
jne case.0x43e9fc.69
cmp dl, 0x41
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x1e
jmp 0x43e493
cmp bl, 0x1a
jne 0x43ec0e
cmp cl, 1
jne case.0x43e9fc.69
cmp dl, 0x45
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0xe
jmp 0x43e493
cmp bl, 0x14
jne 0x43ec3a
cmp cl, 2
jne case.0x43e9fc.69
cmp dl, 0x42
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x11
jmp 0x43e493
cmp cl, 1
jne 0x43ecbd
cmp bl, 3
jne 0x43ec96
cmp dl, 0x52
jne 0x43ec5e
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0xc
jmp 0x43e493
cmp dl, 0x55
jne 0x43ec78
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 4
jmp 0x43e493
cmp dl, 0x41
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x1c
jmp 0x43e493
cmp bl, 9
jne 0x43ed69
cmp dl, 0x49
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x1f
jmp 0x43e493
cmp cl, 2
jne 0x43ed26
cmp bl, 4
jne 0x43ece5
cmp dl, 0x52
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x1d
jmp 0x43e493
cmp bl, 0xf
jne case.0x43e9fc.69
cmp dl, 0x53
jne 0x43ed08
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x1b
jmp 0x43e493
cmp dl, 0x42
jne case.0x43e9fc.69
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0x12
jmp 0x43e493
cmp cl, 4
jne 0x43ed4a
cmp bl, 0xc
jne 0x43ed4a
cmp dl, 0x50
jne 0x43ed4a
mov ebx, dword [ebp + 8]
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x16], 0xd
jmp 0x43e493
cmp cl, 3
jne case.0x43e9fc.69
cmp bl, 0xf
jne case.0x43e9fc.69
cmp dl, 0x49
jne case.0x43e9fc.69
mov byte [esi + 0x16], 0x20
inc cl
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
jmp 0x43e493
cmp dl, 0x20
je 0x43f7bb
mov eax, dword [esp + 0x2c]
test eax, eax
cmove eax, edi
cmp byte [esi + 0x16], 5
mov dword [esp + 0x2c], eax
mov eax, 0x18
cmove ecx, eax
call fcn.0043d7e0
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 1
jne 0x43e493
mov eax, dword [esi + 0x14]
and eax, 0x91ffffff
or eax, 0x11000000
jmp 0x43f947
cmp dl, 0xa
je 0x43edb0
cmp dl, 0xd
je 0x43edb0
cmp dl, 0x20
je 0x43edb0
jmp 0x43ed9c
cmp dl, 0xa
je 0x43ee68
cmp dl, 0xd
je 0x43ee68
cmp dl, 0x20
jne 0x43ed9c
mov edx, dword [esp + 0x2c]
mov ecx, 0x20
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
test edx, edx
je 0x43f7bf
cmp dword [eax + 4], 0
je 0x43eee2
mov eax, dword [esi]
and eax, 0xffff41ff
or eax, 0x4000
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
mov eax, dword [esp + 0x1c]
push edx
push esi
mov eax, dword [eax + 4]
call eax
add esp, 0xc
test eax, eax
je 0x43ee42
mov eax, dword [esi + 0x14]
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f910
mov dword [esp + 0x2c], 0
jmp 0x43e493
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp dl, 0xd
mov dword [esi + 0x10], 0x90000
mov edx, dword [esp + 0x2c]
setne cl
add ecx, 0x29
mov dword [esp + 0x14], ecx
test edx, edx
je 0x43eeea
cmp dword [eax + 4], 0
je 0x43eee2
mov eax, dword [esi]
and eax, 0xffff01ff
shl ecx, 9
or ecx, eax
mov eax, edi
sub eax, edx
mov dword [esi], ecx
push eax
mov eax, dword [esp + 0x1c]
push edx
push esi
mov eax, dword [eax + 4]
call eax
add esp, 0xc
test eax, eax
je 0x43eec5
mov eax, dword [esi + 0x14]
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f910
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x1c]
jmp 0x43e49b
cmp dl, 0x20
je 0x43e493
cmp dl, 0x48
jne 0x43f825
mov ecx, 0x21
jmp 0x43e48f
cmp dl, 0x54
jne 0x43e6f8
mov ecx, 0x22
jmp 0x43e48f
cmp dl, 0x54
jne 0x43e6f8
mov ecx, 0x23
jmp 0x43e48f
cmp dl, 0x50
jne 0x43e6f8
mov ecx, 0x24
jmp 0x43e48f
cmp dl, 0x2f
jne 0x43e6f8
mov ecx, 0x25
jmp 0x43e48f
lea eax, [edx - 0x31]
cmp al, 8
ja 0x43f837
movsx ax, dl
mov ecx, 0x26
sub ax, 0x30
mov word [esi + 0x10], ax
jmp 0x43e48f
cmp dl, 0x2e
jne 0x43e767
mov ecx, 0x27
jmp 0x43e48f
lea eax, [edx - 0x30]
cmp al, 9
ja 0x43f837
movsx ax, dl
mov ecx, 0x28
sub ax, 0x30
mov word [esi + 0x12], ax
jmp 0x43e48f
cmp dl, 0xd
jne 0x43efbf
mov ecx, 0x29
jmp 0x43e48f
cmp dl, 0xa
jne 0x43e7e0
mov ecx, 0x2a
jmp 0x43e48f
cmp dl, 0xa
jne 0x43f85b
mov ecx, 0x2a
jmp 0x43e48f
mov ebx, edi
mov dword [esp + 0x44], ebx
cmp edi, dword [esp + 0x1c]
je 0x43f13d
mov dl, byte [edi]
movzx eax, dl
mov cl, byte [eax + 0x4b8790]
test cl, cl
je 0x43f135
movzx eax, byte [esi + 2]
dec eax
cmp eax, 0xb
ja case.default.0x43f016
jmp dword [eax*4 + 0x43fba4]
inc byte [esi + 3]
cmp cl, 0x6f
setne al
dec al
and al, 2
mov byte [esi + 2], al
jmp case.default.0x43f016
inc byte [esi + 3]
cmp cl, 0x6e
setne al
dec al
and al, 3
mov byte [esi + 2], al
jmp case.default.0x43f016
inc byte [esi + 3]
cmp cl, 0x6e
je 0x43f061
cmp cl, 0x74
setne al
dec al
and al, 6
mov byte [esi + 2], al
jmp case.default.0x43f016
mov byte [esi + 2], 4
jmp case.default.0x43f016
inc byte [esi + 3]
mov bl, byte [esi + 3]
cmp bl, 0xa
ja 0x43f126
movzx eax, bl
cmp cl, byte [eax + str.connection]
jne 0x43f126
cmp bl, 9
jne case.default.0x43f016
mov byte [esi + 2], bl
jmp case.default.0x43f016
inc byte [esi + 3]
mov bl, byte [esi + 3]
cmp bl, 0x10
ja 0x43f126
movzx eax, bl
cmp cl, byte [eax + str.proxy_connection]
jne 0x43f126
cmp bl, 0xf
jne case.default.0x43f016
mov byte [esi + 2], 9
jmp case.default.0x43f016
inc byte [esi + 3]
mov bl, byte [esi + 3]
cmp bl, 0xe
ja 0x43f126
movzx eax, bl
cmp cl, byte [eax + str.content_length]
jne 0x43f126
cmp bl, 0xd
jne case.default.0x43f016
mov byte [esi + 2], 0xa
jmp case.default.0x43f016
inc byte [esi + 3]
mov bl, byte [esi + 3]
cmp bl, 0x11
ja 0x43f126
movzx eax, bl
cmp cl, byte [eax + str.transfer_encoding]
jne 0x43f126
cmp bl, 0x10
jne case.default.0x43f016
mov byte [esi + 2], 0xb
jmp case.default.0x43f016
inc byte [esi + 3]
mov bl, byte [esi + 3]
cmp bl, 7
ja 0x43f126
movzx eax, bl
cmp cl, byte [eax + str.upgrade]
jne 0x43f126
cmp bl, 6
jne case.default.0x43f016
mov byte [esi + 2], 0xc
jmp case.default.0x43f016
cmp dl, 0x20
je case.default.0x43f016
mov byte [esi + 2], 0
inc edi
cmp edi, dword [esp + 0x1c]
jne 0x43eff5
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov eax, edi
sub eax, ebx
add dword [esi + 4], eax
cmp dword [esi + 4], 0x14000
ja 0x43db6e
cmp edi, dword [esp + 0x1c]
jne 0x43f160
mov ebx, dword [ebp + 8]
dec edi
jmp 0x43e493
cmp dl, 0x3a
jne 0x43f7c8
mov edx, dword [esp + 0x34]
mov ecx, 0x2c
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
test edx, edx
je 0x43f7af
cmp dword [eax + 0xc], 0
je 0x43f1da
mov eax, dword [esi]
and eax, 0xffff59ff
or eax, 0x5800
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
mov eax, dword [esp + 0x1c]
push edx
push esi
mov eax, dword [eax + 0xc]
call eax
add esp, 0xc
test eax, eax
je 0x43f1bd
mov eax, dword [esi + 0x14]
and eax, 0x83ffffff
or eax, 0x3000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f8f5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
jmp 0x43e49b
cmp dl, 0x20
je 0x43e493
cmp dl, 9
je 0x43e493
cmp dl, 0xd
jne 0x43f20f
mov ecx, 0x2d
jmp 0x43e48f
cmp dl, 0xa
jne case.0x43db8f.47
mov ecx, 0x2e
jmp 0x43e48f
mov eax, dword [esp + 0x20]
mov cl, dl
test eax, eax
mov byte [esi + 3], 0
mov ebx, 0x30
cmove eax, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], eax
or cl, 0x20
movzx eax, byte [esi + 2]
add eax, 0xfffffff7
cmp eax, 5
ja case.0x43f249.13
jmp dword [eax*4 + 0x43fbd4]
or dword [esi], 0x80
mov ecx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
mov byte [esi + 2], 0
jmp 0x43e493
mov ebx, dword [ebp + 8]
cmp cl, 0x63
mov ecx, dword [esp + 0x14]
setne al
dec al
and al, 0xd
mov byte [esi + 2], al
jmp 0x43e493
lea eax, [edx - 0x30]
cmp al, 9
ja 0x43f86d
mov ecx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
movsx eax, dl
sub eax, 0x30
cdq
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
jmp 0x43e493
mov ebx, dword [ebp + 8]
cmp cl, 0x6b
jne 0x43f2b8
mov ecx, dword [esp + 0x14]
mov byte [esi + 2], 0xf
jmp 0x43e493
mov edx, dword [esp + 0x1c]
cmp cl, 0x63
jne 0x43f2ce
mov ecx, dword [esp + 0x14]
mov byte [esi + 2], 0x10
jmp 0x43e497
cmp cl, 0x75
mov ecx, dword [esp + 0x14]
setne al
add al, 0x11
mov byte [esi + 2], al
jmp 0x43e497
cmp dl, 0xa
jne 0x43e6f8
mov ecx, 0x31
jmp 0x43e48f
cmp dl, 0xa
jne 0x43e6f8
mov ecx, 0x2e
jmp 0x43e48f
cmp dl, 0xa
jne 0x43e6f8
mov ebx, dword [esi]
mov ecx, ebx
mov dword [esi + 4], 0
and ecx, 4
jne 0x43f33a
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
test edx, edx
jne 0x43f32f
test eax, eax
je 0x43f336
and eax, edx
cmp eax, 0xffffffff
jne 0x43f33a
xor eax, eax
jmp 0x43f33f
mov eax, 1
cmp dword [esi + 0x14], 0x80000000
jb 0x43f366
cmp byte [esi + 0x16], 5
je 0x43f87f
test ebx, 0x100
jne 0x43f87f
test eax, eax
je 0x43f87f
test ebx, 0x100
je 0x43f3f1
mov ecx, esi
call fcn.0043fc40
test eax, eax
je 0x43f38f
test bl, 3
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x43f394
mov ecx, 1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x1c], 0
je 0x43f7af
shl ecx, 9
and ebx, 0xffff01ff
or ebx, ecx
mov dword [esi], ebx
mov eax, dword [eax + 0x1c]
push esi
call eax
add esp, 4
test eax, eax
je 0x43f3d0
mov eax, dword [esi + 0x14]
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f8f5
mov ebx, dword [ebp + 8]
jmp 0x43e493
test ecx, ecx
je 0x43f402
mov ebx, dword [ebp + 8]
mov ecx, 0x33
jmp 0x43e48f
mov ecx, dword [esi + 8]
mov eax, ecx
mov edx, dword [esi + 0xc]
or eax, edx
jne 0x43f447
mov ecx, esi
call fcn.0043fc40
test eax, eax
je 0x43f42b
test bl, 3
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x43f430
mov ecx, 1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x1c], 0
je 0x43f1e2
jmp 0x43f3a6
and ecx, edx
cmp ecx, 0xffffffff
je 0x43f45b
mov ebx, dword [ebp + 8]
mov ecx, 0x3c
jmp 0x43e48f
mov ecx, esi
call fcn.0043fbf0
test eax, eax
je 0x43f40e
mov ebx, dword [ebp + 8]
mov ecx, 0x3d
jmp 0x43e48f
mov eax, dword [esp + 0x24]
test eax, eax
mov edx, dword [esp + 0x1c]
cmove eax, edi
mov dword [esp + 0x24], eax
lea edi, [edx - 1]
jmp 0x43e497
mov ecx, esi
call fcn.0043fc40
test eax, eax
je 0x43f4a9
test byte [esi], 3
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x43f4ae
mov ecx, 1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x1c], 0
je 0x43f508
mov eax, dword [esi]
and eax, 0xffff01ff
shl ecx, 9
or eax, ecx
mov dword [esi], eax
mov eax, dword [esp + 0x18]
push esi
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
test eax, eax
je 0x43f4eb
mov eax, dword [esi + 0x14]
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f910
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x14], 0x80000000
jae 0x43f902
mov edx, dword [esp + 0x1c]
jmp 0x43e49b
movzx eax, dl
mov al, byte [eax + 0x4b85e0]
cmp al, 0xff
je 0x43f91c
movsx eax, al
mov ecx, 0x34
cdq
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
jmp 0x43e48f
cmp dl, 0xd
jne 0x43f552
mov ecx, 0x36
jmp 0x43e48f
movzx eax, dl
mov al, byte [eax + 0x4b85e0]
cmp al, 0xff
jne 0x43f577
cmp dl, 0x3b
je 0x43f56d
cmp dl, 0x20
jne 0x43f91c
mov ecx, 0x35
jmp 0x43e48f
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp ebx, 0xfffffff
ja 0x43f92b
jb 0x43f594
cmp ecx, 0xfffffffe
ja 0x43f92b
shld ebx, ecx, 4
movsx eax, al
shl ecx, 4
cdq
add ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x14]
adc ebx, edx
mov dword [esi + 0xc], ebx
mov ebx, dword [ebp + 8]
jmp 0x43e493
mov eax, dword [esp + 0x18]
cmp dl, 0xd
mov edx, dword [esp + 0x1c]
jne 0x43e49b
mov ecx, 0x36
mov dword [esp + 0x14], ecx
jmp 0x43e49b
cmp dl, 0xa
jne 0x43e6f8
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
mov dword [esi + 4], 0
jne 0x43f5f4
or dword [esi], 0x40
lea ecx, [eax + 0x2a]
jmp 0x43f5f9
mov ecx, 0x39
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x20], 0
je 0x43eeea
mov eax, dword [esi]
and eax, 0xffff01ff
shl ecx, 9
or eax, ecx
mov dword [esi], eax
mov eax, dword [esp + 0x18]
push esi
mov eax, dword [eax + 0x20]
call eax
add esp, 4
test eax, eax
je 0x43e31c
mov eax, dword [esi + 0x14]
and eax, 0x89ffffff
or eax, 0x9000000
jmp 0x43e319
mov ecx, dword [esi + 8]
mov eax, ebx
sub eax, edi
add eax, dword [ebp + 0xc]
cdq
mov ebx, eax
mov eax, dword [esi + 0xc]
cmp eax, edx
ja 0x43f65e
jb 0x43f65a
cmp ecx, ebx
jae 0x43f65e
mov ebx, ecx
mov edx, eax
mov esi, dword [esp + 0x24]
test esi, esi
cmove esi, edi
sub ecx, ebx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x3c]
sbb eax, edx
mov edx, dword [esp + 0x1c]
dec edi
add edi, ebx
mov ebx, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov eax, ecx
or eax, dword [esi + 0xc]
mov eax, dword [esp + 0x18]
mov dword [esi + 8], ecx
jne 0x43f7a6
mov ecx, 0x3a
mov dword [esp + 0x14], ecx
jmp 0x43e49b
cmp dl, 0xd
jne 0x43e6f8
mov edx, dword [esp + 0x24]
mov ecx, 0x3b
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
test edx, edx
je 0x43eeea
cmp dword [eax + 0x18], 0
je 0x43f71a
mov eax, dword [esi]
and eax, 0xffff77ff
or eax, 0x7600
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
mov eax, dword [esp + 0x1c]
push edx
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 0xc
test eax, eax
je 0x43f6fd
mov eax, dword [esi + 0x14]
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
jne 0x43f910
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], 0
jmp 0x43e49b
cmp dl, 0xa
jne 0x43e6f8
mov eax, dword [esp + 0x18]
mov ecx, 0x33
mov dword [esi + 4], 0
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x24], 0
je 0x43eeea
mov eax, dword [esi]
and eax, 0xffff67ff
or eax, 0x6600
mov dword [esi], eax
mov eax, dword [esp + 0x18]
push esi
mov eax, dword [eax + 0x24]
call eax
add esp, 4
test eax, eax
je 0x43f781
mov eax, dword [esi + 0x14]
and eax, 0x8affffff
or eax, 0xa000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 9
and ecx, 0x7f
test dword [esi + 0x14], 0x7f000000
mov dword [esp + 0x14], ecx
je 0x43e493
sub edi, ebx
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
jmp 0x43e49b
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
jmp 0x43e49b
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x43e49b
mov eax, dword [esi + 0x14]
and eax, 0x98ffffff
or eax, 0x18000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x99ffffff
mov byte [esi + 2], 0xa
or eax, 0x19000000
jmp 0x43f947
sub edi, ebx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
and eax, 0x85ffffff
or eax, 0x5000000
mov dword [esi + 0x14], eax
mov eax, dword [esi]
and eax, 0xffff71ff
or eax, 0x7000
mov dword [esi], eax
sub edi, dword [ebp + 8]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
and eax, 0x9bffffff
or eax, 0x1b000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x8effffff
or eax, 0xe000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x90ffffff
or eax, 0x10000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x97ffffff
or eax, 0x17000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x99ffffff
or eax, 0x19000000
jmp 0x43f94b
mov ecx, esi
call fcn.0043fc40
test eax, eax
je 0x43f89c
test byte [esi], 3
mov edx, 4
mov eax, 0x12
cmove edx, eax
jmp 0x43f8a1
mov edx, 1
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x1c], 0
je 0x43f8e7
mov eax, dword [esi]
and eax, 0xffff01ff
shl edx, 9
or eax, edx
mov dword [esi], eax
mov eax, dword [ecx + 0x1c]
push esi
call eax
add esp, 4
test eax, eax
je 0x43f8d6
mov eax, dword [esi + 0x14]
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [esi + 0x14], eax
mov edx, dword [esi]
shr edx, 9
and edx, 0x7f
test dword [esi + 0x14], 0x7f000000
jne 0x43f8f5
mov eax, dword [esi]
and eax, 0xffff01ff
shl edx, 9
or eax, edx
mov dword [esi], eax
sub edi, dword [ebp + 8]
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
and eax, 0xffff01ff
shl ecx, 9
or eax, ecx
mov dword [esi], eax
sub edi, ebx
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
and eax, 0x9affffff
or eax, 0x1a000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x99ffffff
or eax, 0x19000000
jmp 0x43f947
mov eax, dword [esi + 0x14]
and eax, 0x9cffffff
or eax, 0x1c000000
mov ebx, dword [esp + 0x14]
mov dword [esi + 0x14], eax
test eax, 0x7f000000
jne 0x43f962
and eax, 0x9fffffff
or eax, 0x1f000000
mov dword [esi + 0x14], eax
shl ebx, 9
xor ebx, dword [esi]
and ebx, 0xfe00
xor dword [esi], ebx
sub edi, dword [ebp + 8]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret