Function at 0x43c820
Capabilities:
Hash data using murmur3
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x52b6ab
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x59c6b8]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x28], edi
push 0x18
call fcn.00511699
add esp, 4
mov dword [esp + 0x6c], eax
mov ebp, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0x78], esi
cmp eax, esi
je 0x43c885
mov ecx, dword [esp + 0x88]
push ecx
push ebp
push esi
mov ecx, eax
call fcn.0043bee0
mov ebx, eax
mov dword [esp + 0x3c], eax
jmp 0x43c88b
xor ebx, ebx
mov dword [esp + 0x3c], ebx
mov edx, dword [ebx + 0xc]
imul edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
push edx
push esi
push eax
mov dword [esp + 0x84], 0xffffffff
call fcn.00512510
add esp, 0xc
cmp dword [esp + 0x80], esi
je 0x43d06c
mov eax, dword [edi + 0x98]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
cmp ebp, 0x7ffffffd
jle 0x43c8ee
mov edx, dword [edi]
mov eax, dword [edx + 0x28]
push str.Bad_width_in_JBIG2_generic_bitmap
mov ecx, edi
call eax
push edx
push eax
push 1
call fcn.00412330
add esp, 0x10
mov ebp, 0xfffffffd
lea ecx, [ebp + 1]
push 4
push ecx
call fcn.004a30a0
lea edx, [ebp + 2]
mov ebx, eax
push 4
push edx
mov dword [esp + 0x94], ebx
call fcn.004a30a0
add esp, 0x10
mov edi, eax
mov dword [ebx], ebp
mov dword [esp + 0x14], esi
cmp dword [esp + 0x88], esi
jle 0x43cff3
mov esi, dword [esp + 0x84]
mov edx, dword [esi]
xor eax, eax
cmp edx, ebp
jge 0x43c952
xor ecx, ecx
jmp 0x43c940
inc eax
mov dword [ecx + edi], edx
lea ecx, [eax*4]
mov edx, dword [ecx + esi]
cmp edx, ebp
jl 0x43c940
mov dword [edi + eax*4], ebp
xor esi, esi
mov dword [edi + eax*4 + 4], ebp
mov eax, dword [esp + 0x84]
xor ebx, ebx
mov dword [eax], esi
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa0], esi
cmp esi, ebp
jge 0x43cf7f
lea esp, [esp]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x98]
call fcn.0043baf0
inc eax
cmp eax, 9
ja case.default.0x43c999
jmp dword [eax*4 + 0x43e3bc]
mov eax, dword [edi + esi*4 + 4]
mov ecx, dword [esp + 0x84]
cmp eax, dword [ecx + ebx*4]
jle 0x43c9f3
cmp eax, ebp
jle 0x43c9d3
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call eax
push edx
push eax
push 1
call fcn.00412330
add esp, 0x14
mov eax, ebp
mov ecx, ebx
and ecx, 1
xor ecx, dword [esp + 0xa0]
je 0x43c9e9
inc ebx
mov dword [esp + 0x98], ebx
mov edx, dword [esp + 0x84]
mov dword [edx + ebx*4], eax
cmp dword [edi + esi*4 + 4], ebp
jge 0x43cf6f
add esi, 2
jmp 0x43cf6f
xor eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
cmp dword [esp + 0xa0], eax
je 0x43ca60
mov edi, edi
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x98]
call fcn.0043bcc0
add dword [esp + 0x9c], eax
cmp eax, 0x40
jge 0x43ca20
jmp 0x43ca40
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x98]
call fcn.0043bbc0
add dword [esp + 0x94], eax
cmp eax, 0x40
jge 0x43ca40
jmp 0x43ca9b
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 0x98]
call fcn.0043bbc0
add dword [esp + 0x9c], eax
cmp eax, 0x40
jge 0x43ca60
jmp 0x43ca80
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x98]
call fcn.0043bcc0
add dword [esp + 0x94], eax
cmp eax, 0x40
jge 0x43ca80
mov edx, dword [esp + 0x84]
mov ecx, dword [edx + ebx*4]
mov eax, dword [esp + 0x9c]
add eax, ecx
cmp eax, ecx
jle 0x43caf5
cmp eax, ebp
jle 0x43cadc
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call eax
push edx
push eax
push 1
call fcn.00412330
mov edx, dword [esp + 0x98]
add esp, 0x14
mov eax, ebp
mov ecx, ebx
and ecx, 1
xor ecx, dword [esp + 0xa0]
je 0x43caf2
inc ebx
mov dword [esp + 0x98], ebx
mov dword [edx + ebx*4], eax
cmp dword [edx + ebx*4], ebp
jge 0x43cb4f
mov ecx, dword [edx + ebx*4]
mov eax, dword [esp + 0x94]
add eax, ecx
cmp eax, ecx
jle 0x43cb4f
cmp eax, ebp
jle 0x43cb34
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call eax
push edx
push eax
push 1
call fcn.00412330
mov edx, dword [esp + 0x98]
add esp, 0x14
mov eax, ebp
mov ecx, ebx
not ecx
and ecx, 1
xor ecx, dword [esp + 0xa0]
je 0x43cb4c
inc ebx
mov dword [esp + 0x98], ebx
mov dword [edx + ebx*4], eax
mov eax, dword [edi + esi*4]
mov ecx, dword [edx + ebx*4]
cmp eax, ecx
jg 0x43cf6f
lea ecx, [ecx]
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43cb60
jmp 0x43cf6f
mov eax, dword [edi + esi*4]
mov ecx, dword [esp + 0x84]
add eax, 3
cmp eax, dword [ecx + ebx*4]
jle 0x43cbcd
cmp eax, ebp
jle 0x43cbb4
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call eax
push edx
push eax
push 1
call fcn.00412330
mov ecx, dword [esp + 0x98]
add esp, 0x14
mov eax, ebp
mov edx, ebx
and edx, 1
xor edx, dword [esp + 0xa0]
je 0x43cbca
inc ebx
mov dword [esp + 0x98], ebx
mov dword [ecx + ebx*4], eax
mov ecx, dword [ecx + ebx*4]
xor dword [esp + 0xa0], 1
cmp ecx, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 4]
inc esi
cmp eax, ecx
jg 0x43cf6f
lea ecx, [ecx]
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43cbf0
jmp 0x43cf6f
mov eax, dword [edi + esi*4]
mov ecx, dword [esp + 0x84]
add eax, 2
cmp eax, dword [ecx + ebx*4]
jle 0x43cc5d
cmp eax, ebp
jle 0x43cc44
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call edx
push edx
push eax
push 1
call fcn.00412330
mov ecx, dword [esp + 0x98]
add esp, 0x14
mov eax, ebp
mov edx, ebx
and edx, 1
xor edx, dword [esp + 0xa0]
je 0x43cc5a
inc ebx
mov dword [esp + 0x98], ebx
mov dword [ecx + ebx*4], eax
mov ecx, dword [ecx + ebx*4]
xor dword [esp + 0xa0], 1
cmp ecx, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 4]
inc esi
cmp eax, ecx
jg 0x43cf6f
lea ecx, [ecx]
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43cc80
jmp 0x43cf6f
mov eax, dword [edi + esi*4]
mov ecx, dword [esp + 0x84]
inc eax
cmp eax, dword [ecx + ebx*4]
jle 0x43cceb
cmp eax, ebp
jle 0x43ccd2
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call edx
push edx
push eax
push 1
call fcn.00412330
mov ecx, dword [esp + 0x98]
add esp, 0x14
mov eax, ebp
mov edx, ebx
and edx, 1
xor edx, dword [esp + 0xa0]
je 0x43cce8
inc ebx
mov dword [esp + 0x98], ebx
mov dword [ecx + ebx*4], eax
mov ecx, dword [ecx + ebx*4]
xor dword [esp + 0xa0], 1
cmp ecx, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 4]
inc esi
cmp eax, ecx
jg 0x43cf6f
jmp 0x43cd10
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43cd10
jmp 0x43cf6f
mov eax, dword [edi + esi*4]
mov ecx, dword [esp + 0x84]
cmp eax, dword [ecx + ebx*4]
jle 0x43cd7a
cmp eax, ebp
jle 0x43cd61
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
push str.JBIG2_MMR_row_is_wrong_length__0:d_
call edx
push edx
push eax
push 1
call fcn.00412330
mov ecx, dword [esp + 0x98]
add esp, 0x14
mov eax, ebp
mov edx, ebx
and edx, 1
xor edx, dword [esp + 0xa0]
je 0x43cd77
inc ebx
mov dword [esp + 0x98], ebx
mov dword [ecx + ebx*4], eax
mov ecx, dword [ecx + ebx*4]
xor dword [esp + 0xa0], 1
cmp ecx, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 4]
inc esi
cmp eax, ecx
jg 0x43cf6f
lea ebx, [ebx]
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43cda0
jmp 0x43cf6f
mov ecx, dword [esp + 0x84]
mov edx, dword [edi + esi*4]
mov ebx, dword [esp + 0xa0]
push ebp
lea eax, [esp + 0x9c]
push eax
push ecx
mov ecx, dword [esp + 0x34]
push ebx
sub edx, 3
push edx
call fcn.0043c780
mov eax, dword [esp + 0x84]
xor ebx, 1
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0x98]
mov ecx, dword [eax + ebx*4]
cmp ecx, ebp
jge 0x43cf6f
test esi, esi
jle 0x43ce0b
dec esi
jmp 0x43ce0c
inc esi
mov eax, dword [edi + esi*4]
cmp eax, ecx
jg 0x43cf6f
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43ce17
jmp 0x43cf6f
mov edx, dword [esp + 0x84]
mov eax, dword [edi + esi*4]
mov ebx, dword [esp + 0xa0]
push ebp
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push ebx
sub eax, 2
push eax
call fcn.0043c780
mov ecx, dword [esp + 0x84]
xor ebx, 1
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0x98]
mov ecx, dword [ecx + ebx*4]
cmp ecx, ebp
jge 0x43cf6f
test esi, esi
jle 0x43ce82
dec esi
jmp 0x43ce83
inc esi
mov eax, dword [edi + esi*4]
cmp eax, ecx
jg 0x43cf6f
mov edi, edi
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43ce90
jmp 0x43cf6f
mov eax, dword [esp + 0x84]
mov ecx, dword [edi + esi*4]
mov ebx, dword [esp + 0xa0]
push ebp
lea edx, [esp + 0x9c]
push edx
push eax
dec ecx
push ebx
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.0043c780
mov edx, dword [esp + 0x84]
xor ebx, 1
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0x98]
mov ecx, dword [edx + ebx*4]
cmp ecx, ebp
jge 0x43cf6f
test esi, esi
jle 0x43cef9
dec esi
jmp 0x43cefa
inc esi
mov eax, dword [edi + esi*4]
cmp eax, ecx
jg 0x43cf6f
cmp eax, ebp
jge 0x43cf6f
mov eax, dword [edi + esi*4 + 8]
add esi, 2
cmp eax, ecx
jle 0x43cf01
jmp 0x43cf6f
mov eax, dword [esp + 0x84]
cmp ebp, dword [eax + ebx*4]
jle 0x43cf6f
test bl, 1
je 0x43cf2b
inc ebx
mov dword [esp + 0x98], ebx
mov dword [eax + ebx*4], ebp
jmp 0x43cf6f
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
push str.Illegal_code_in_JBIG2_MMR_bitmap_data
call edx
push edx
push eax
push 1
call fcn.00412330
mov eax, dword [esp + 0x94]
add esp, 0x10
cmp ebp, dword [eax + ebx*4]
jle 0x43cf6f
test bl, 1
je 0x43cf65
inc ebx
mov dword [esp + 0x98], ebx
mov ecx, dword [esp + 0x84]
mov dword [ecx + ebx*4], ebp
mov edx, dword [esp + 0x84]
cmp dword [edx + ebx*4], ebp
jl 0x43c980
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x3c]
add edx, 4
lea ecx, [ecx]
mov eax, dword [edx - 4]
cmp eax, dword [edx]
jge 0x43cfcf
jmp 0x43cfa0
mov esi, dword [ecx + 0x10]
imul esi, dword [esp + 0x14]
mov ecx, dword [ecx + 0x14]
mov ebx, eax
sar ebx, 3
add esi, ebx
add esi, ecx
mov ebx, eax
and ebx, 7
mov ecx, 7
sub ecx, ebx
mov bl, 1
shl bl, cl
mov ecx, dword [esp + 0x3c]
inc eax
or byte [esi], bl
cmp eax, dword [edx]
jl 0x43cfa0
cmp dword [edx], ebp
jge 0x43cfdd
cmp dword [edx + 4], ebp
jge 0x43cfdd
add edx, 8
jmp 0x43cf90
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x88]
jl 0x43c925
mov eax, dword [esp + 0xa4]
test eax, eax
js 0x43d01d
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x98]
sub eax, dword [esi + 0xc]
mov ecx, dword [esi]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x24]
call eax
add dword [esi + 0xc], eax
add dword [esi + 0x10], eax
jmp 0x43d04d
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x98]
call fcn.0043be10
cmp eax, 0x1001
je 0x43d04d
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
push str.Missing_EOFB_in_JBIG2_MMR_bitmap_data
mov ecx, esi
call eax
push edx
push eax
push 1
call fcn.00412330
add esp, 0x10
push edi
call fcn.004a2fd0
mov ecx, dword [esp + 0x88]
push ecx
call fcn.004a2fd0
mov eax, dword [esp + 0x44]
add esp, 8
jmp 0x43e3a4
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x50], esi
cmp dword [esp + 0x90], esi
je case.default.0x43d085
cmp eax, 3
ja case.default.0x43d085
jmp dword [eax*4 + 0x43e3e4]
mov dword [esp + 0x50], 0x3953
jmp case.default.0x43d085
mov dword [esp + 0x50], 0x79a
jmp case.default.0x43d085
mov dword [esp + 0x50], 0xe3
jmp case.default.0x43d085
mov dword [esp + 0x50], 0x18b
mov dword [esp + 0x54], esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x88], esi
jle 0x43e3a2
jmp 0x43d0d0
cmp dword [esp + 0x90], 0
je 0x43d13d
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x54]
mov ecx, dword [esp + 0x50]
push edx
push ecx
mov ecx, dword [eax + 0x50]
call fcn.0043b2d0
test eax, eax
je 0x43d100
xor edx, edx
cmp dword [esp + 0x54], edx
sete dl
mov dword [esp + 0x54], edx
cmp dword [esp + 0x54], 0
je 0x43d13d
cmp dword [esp + 0x14], 0
jle case.default.0x43d152
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
mov edx, dword [esp + 0x14]
push eax
lea esi, [edx - 1]
imul esi, eax
imul eax, edx
add esi, ecx
add eax, ecx
push esi
push eax
call fcn.00511be0
add esp, 0xc
jmp case.default.0x43d152
cmp dword [esp + 0x8c], 3
ja case.default.0x43d152
mov eax, dword [esp + 0x8c]
jmp dword [eax*4 + 0x43e3f4]
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, edx
imul eax, ecx
movzx esi, byte [eax + edi]
add eax, edi
mov dword [esp + 0x2c], eax
shl esi, 8
inc eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
cmp ecx, 1
jl 0x43d1c1
lea eax, [ecx - 1]
imul eax, edx
movzx esi, byte [eax + edi]
add eax, edi
shl esi, 8
inc eax
mov dword [esp + 0xa4], esi
mov dword [esp + 0x24], eax
cmp ecx, 2
jl 0x43d1bd
lea eax, [ecx - 2]
imul eax, edx
movzx esi, byte [eax + edi]
add eax, edi
shl esi, 8
mov dword [esp + 0x1c], esi
inc eax
jmp 0x43d1d2
xor eax, eax
jmp 0x43d1ce
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x9c]
mov esi, dword [eax]
cmp esi, 0xfffffff8
jl 0x43d50b
cmp esi, 8
jg 0x43d50b
mov ebx, dword [eax + 4]
mov dword [esp + 0x80], ebx
cmp ebx, 0xfffffff8
jl 0x43d50b
cmp ebx, 8
jg 0x43d50b
mov ebx, dword [eax + 8]
mov dword [esp + 0x60], ebx
cmp ebx, 0xfffffff8
jl 0x43d50b
cmp ebx, 8
jg 0x43d50b
mov eax, dword [eax + 0xc]
mov dword [esp + 0x44], eax
cmp eax, 0xfffffff8
jl 0x43d50b
cmp eax, 8
jg 0x43d50b
mov ebp, dword [esp + 0xa0]
mov eax, dword [ebp]
add eax, ecx
xor ebx, ebx
cmp eax, ebx
jl 0x43d264
imul eax, edx
movzx ebx, byte [eax + edi]
add eax, edi
shl ebx, 8
inc eax
mov dword [esp + 0x40], eax
jmp 0x43d268
mov dword [esp + 0x40], ebx
mov eax, 0xf
sub eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 4]
add eax, ecx
mov dword [esp + 0x48], ebx
js 0x43d291
imul eax, edx
movzx ebx, byte [eax + edi]
add eax, edi
shl ebx, 8
inc eax
mov dword [esp + 0x58], eax
jmp 0x43d297
xor ebx, ebx
mov dword [esp + 0x58], ebx
mov eax, 0xf
sub eax, dword [esp + 0x80]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 8]
add eax, ecx
xor ebp, ebp
cmp eax, ebp
jl 0x43d2c5
imul eax, edx
movzx ebp, byte [eax + edi]
add eax, edi
shl ebp, 8
inc eax
mov dword [esp + 0x5c], eax
jmp 0x43d2c9
mov dword [esp + 0x5c], ebp
mov eax, 0xf
sub eax, dword [esp + 0x60]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
add eax, ecx
xor ecx, ecx
cmp eax, ecx
jl 0x43d2fa
imul eax, edx
add eax, edi
movzx edi, byte [eax]
shl edi, 8
inc eax
mov dword [esp + 0x60], eax
jmp 0x43d300
mov dword [esp + 0x60], ecx
xor edi, edi
mov eax, 0xf
sub eax, dword [esp + 0x44]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], eax
xor eax, eax
cmp dword [esp + 0x84], ecx
jle case.default.0x43d152
mov ecx, dword [esp + 0x84]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, ecx
jge 0x43d3bb
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43d34a
movzx edx, byte [eax]
or dword [esp + 0x1c], edx
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x43d361
movzx edx, byte [eax]
or dword [esp + 0xa4], edx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
movzx edx, byte [eax]
or dword [esp + 0x18], edx
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x43d385
movzx edx, byte [eax]
or dword [esp + 0x48], edx
inc eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x43d397
movzx edx, byte [eax]
or ebx, edx
inc eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x43d3a9
movzx edx, byte [eax]
or ebp, edx
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x43d3bb
movzx edx, byte [eax]
or edi, edx
inc eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
jmp 0x43d3d0
cmp dword [esp + 0x20], ecx
jge 0x43d4f6
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
shr esi, cl
mov ecx, dword [esp + 0x64]
mov eax, ebx
shr eax, cl
mov ecx, dword [esp + 0x68]
and esi, 1
add esi, esi
and eax, 1
or esi, eax
mov eax, dword [esp + 0x18]
shr eax, 7
mov edx, ebp
shr edx, cl
mov ecx, dword [esp + 0xa4]
and eax, 0x1e00
add esi, esi
and edx, 1
or esi, edx
mov edx, dword [esp + 0x1c]
and ecx, 0x3e000
or eax, ecx
mov ecx, dword [esp + 0x6c]
shr eax, 4
and edx, 0x1c000
or eax, edx
shr eax, 1
add esi, esi
or esi, eax
mov eax, edi
shr eax, cl
and eax, 1
or esi, eax
cmp dword [esp + 0x94], 0
je 0x43d466
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
call fcn.0043be90
test eax, eax
jne 0x43d4b9
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43d4b9
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
mov eax, dword [esp + 0xa0]
mov ecx, 0x8000
or dword [esp + 0x18], ecx
cmp dword [eax], 0
jne 0x43d4a1
or dword [esp + 0x48], ecx
cmp dword [eax + 4], 0
jne 0x43d4a9
or ebx, ecx
cmp dword [eax + 8], 0
jne 0x43d4b1
or ebp, ecx
cmp dword [eax + 0xc], 0
jne 0x43d4b9
or edi, ecx
mov eax, dword [esp + 0x38]
shl dword [esp + 0x1c], 1
shl dword [esp + 0xa4], 1
shl dword [esp + 0x18], 1
shl dword [esp + 0x48], 1
inc dword [esp + 0x20]
shr byte [esp + 0x80], 1
mov ecx, dword [esp + 0x84]
inc eax
add ebx, ebx
add ebp, ebp
add edi, edi
mov dword [esp + 0x38], eax
cmp eax, 8
jl 0x43d3d0
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, ecx
jl 0x43d327
jmp case.default.0x43d152
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x84], eax
jle case.default.0x43d152
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jge 0x43d56b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43d544
movzx edx, byte [eax]
or dword [esp + 0x1c], edx
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x43d55b
movzx edx, byte [eax]
or dword [esp + 0xa4], edx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
movzx edx, byte [eax]
or dword [esp + 0x18], edx
inc eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
jmp 0x43d580
cmp ecx, dword [esp + 0x84]
jge 0x43d7e4
mov edx, dword [esp + 0xa0]
mov esi, dword [edx]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xa4]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
mov edx, dword [edx]
add esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
shr eax, 0xe
shr edi, 0xd
shr ebp, 0x10
and eax, 7
and edi, 0x1f
and ebp, 0xf
add edx, ecx
js 0x43d607
cmp edx, dword [ebx + 8]
jge 0x43d607
test esi, esi
js 0x43d607
cmp esi, dword [ebx + 0xc]
jge 0x43d607
mov ecx, dword [ebx + 0x10]
imul ecx, esi
mov esi, edx
sar esi, 3
add ecx, esi
mov esi, dword [ebx + 0x14]
movzx esi, byte [ecx + esi]
and dl, 7
mov ecx, 7
sub cl, dl
shr esi, cl
mov ecx, dword [esp + 0x20]
and esi, 1
mov dword [esp + 0x60], esi
jmp 0x43d60f
mov dword [esp + 0x60], 0
mov edx, dword [esp + 0xa0]
mov esi, dword [edx + 4]
mov edx, dword [esp + 0x9c]
mov edx, dword [edx + 4]
add esi, dword [esp + 0x14]
add edx, ecx
js 0x43d662
cmp edx, dword [ebx + 8]
jge 0x43d662
test esi, esi
js 0x43d662
cmp esi, dword [ebx + 0xc]
jge 0x43d662
mov ecx, dword [ebx + 0x10]
imul ecx, esi
mov esi, edx
sar esi, 3
add ecx, esi
mov esi, dword [ebx + 0x14]
movzx esi, byte [ecx + esi]
and dl, 7
mov ecx, 7
sub cl, dl
shr esi, cl
and esi, 1
mov dword [esp + 0x5c], esi
jmp 0x43d66a
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0xa0]
mov esi, dword [edx + 8]
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx + 8]
add esi, dword [esp + 0x14]
add edx, dword [esp + 0x20]
js 0x43d6bf
cmp edx, dword [ebx + 8]
jge 0x43d6bf
test esi, esi
js 0x43d6bf
cmp esi, dword [ebx + 0xc]
jge 0x43d6bf
mov ecx, dword [ebx + 0x10]
imul ecx, esi
mov esi, edx
sar esi, 3
add ecx, esi
mov esi, dword [ebx + 0x14]
movzx esi, byte [ecx + esi]
and dl, 7
mov ecx, 7
sub cl, dl
shr esi, cl
and esi, 1
mov dword [esp + 0x58], esi
jmp 0x43d6c7
mov dword [esp + 0x58], 0
mov edx, dword [esp + 0xa0]
mov esi, dword [edx + 0xc]
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx + 0xc]
add esi, dword [esp + 0x14]
add edx, dword [esp + 0x20]
js 0x43d718
cmp edx, dword [ebx + 8]
jge 0x43d718
test esi, esi
js 0x43d718
cmp esi, dword [ebx + 0xc]
jge 0x43d718
mov ecx, dword [ebx + 0x10]
imul ecx, esi
mov esi, edx
sar esi, 3
add ecx, esi
mov esi, dword [ebx + 0x14]
movzx esi, byte [ecx + esi]
and dl, 7
mov ecx, 7
sub cl, dl
shr esi, cl
and esi, 1
jmp 0x43d71a
xor esi, esi
shl eax, 5
or eax, edi
mov ebx, dword [esp + 0x20]
shl eax, 4
or eax, ebp
add eax, eax
or eax, dword [esp + 0x60]
add eax, eax
or eax, dword [esp + 0x5c]
add eax, eax
or eax, dword [esp + 0x58]
add eax, eax
or esi, eax
cmp dword [esp + 0x94], 0
je 0x43d78b
test ebx, ebx
js 0x43d78b
mov eax, dword [esp + 0x98]
cmp ebx, dword [eax + 8]
jge 0x43d78b
mov ecx, dword [esp + 0x14]
test ecx, ecx
js 0x43d78b
cmp ecx, dword [eax + 0xc]
jge 0x43d78b
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
imul edx, ecx
mov ecx, ebx
sar ecx, 3
add edx, ecx
movzx edx, byte [edx + eax]
mov al, bl
and al, 7
mov ecx, 7
sub cl, al
shr edx, cl
and edx, 1
jne 0x43d7b5
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43d7b5
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
or dword [esp + 0x18], 0x8000
mov eax, dword [esp + 0x38]
shl dword [esp + 0x1c], 1
shl dword [esp + 0xa4], 1
shl dword [esp + 0x18], 1
shr byte [esp + 0x80], 1
inc eax
inc ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], ebx
mov ecx, ebx
cmp eax, 8
jl 0x43d580
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, dword [esp + 0x84]
jl 0x43d520
jmp case.default.0x43d152
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, edx
imul ecx, eax
movzx ebp, byte [ecx + edi]
add ecx, edi
mov dword [esp + 0x2c], ecx
shl ebp, 8
inc ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], ecx
cmp eax, 1
jl 0x43d862
lea ecx, [eax - 1]
imul ecx, edx
movzx esi, byte [ecx + edi]
add ecx, edi
shl esi, 8
inc ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x24], ecx
cmp eax, 2
jl 0x43d85e
lea ecx, [eax - 2]
imul ecx, edx
movzx ebx, byte [ecx + edi]
add ecx, edi
shl ebx, 8
inc ecx
jmp 0x43d871
xor ecx, ecx
jmp 0x43d86f
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0xa4], ecx
xor ebx, ebx
mov esi, dword [esp + 0x9c]
mov esi, dword [esi]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x80], esi
cmp esi, 0xfffffff8
jl 0x43da3b
cmp esi, 8
jg 0x43da3b
mov esi, dword [esp + 0xa0]
mov esi, dword [esi]
add eax, esi
js 0x43d8b7
imul eax, edx
lea esi, [edi + eax]
movzx edi, byte [esi]
shl edi, 8
inc esi
jmp 0x43d8bb
xor esi, esi
xor edi, edi
mov eax, 0xf
sub eax, dword [esp + 0x80]
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x84], eax
jle case.default.0x43d152
mov edx, dword [esp + 0x84]
jmp 0x43d8f4
mov esi, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, edx
jge 0x43d942
test ecx, ecx
je 0x43d90d
movzx eax, byte [ecx]
or ebx, eax
inc ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x43d927
movzx eax, byte [eax]
or dword [esp + 0xa4], eax
inc dword [esp + 0x24]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
inc dword [esp + 0x34]
or ebp, eax
test esi, esi
je 0x43d942
movzx eax, byte [esi]
or edi, eax
inc esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
cmp dword [esp + 0x20], edx
jge 0x43da26
mov ecx, dword [esp + 0xa4]
mov esi, ebp
shr esi, 6
and esi, 0x1c00
and ecx, 0x3e000
or esi, ecx
mov ecx, dword [esp + 0x4c]
shr esi, 5
mov eax, edi
mov edx, ebx
shr eax, cl
and edx, 0x1e000
or esi, edx
shr esi, 4
and eax, 1
or esi, eax
cmp dword [esp + 0x94], 0
je 0x43d9b7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
call fcn.0043be90
test eax, eax
jne 0x43d9f1
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43d9f1
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
mov eax, dword [esp + 0xa0]
or ebp, 0x8000
cmp dword [eax], 0
jne 0x43d9f1
or edi, 0x8000
mov eax, dword [esp + 0x38]
shl dword [esp + 0xa4], 1
inc dword [esp + 0x20]
shr byte [esp + 0x80], 1
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
inc eax
add ebx, ebx
add ebp, ebp
add edi, edi
mov dword [esp + 0x38], eax
cmp eax, 8
jl 0x43d952
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, edx
jl 0x43d8f0
jmp case.default.0x43d152
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x84], eax
jle case.default.0x43d152
jmp 0x43da54
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jge 0x43daa1
test ecx, ecx
je 0x43da7c
movzx eax, byte [ecx]
or dword [esp + 0x1c], eax
inc ecx
mov dword [esp + 0x30], ecx
test edx, edx
je 0x43da8f
movzx ecx, byte [edx]
or dword [esp + 0xa4], ecx
inc edx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x34]
movzx edx, byte [eax]
or ebp, edx
inc eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
cmp ebx, dword [esp + 0x84]
jge 0x43dbf1
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
mov ebp, dword [ecx]
mov edx, dword [edx]
add ebp, dword [esp + 0x14]
shr eax, 0xd
shr esi, 0xd
shr edi, 0x10
and eax, 0xf
and esi, 0x1f
and edi, 7
add edx, ebx
js 0x43db34
mov ecx, dword [esp + 0x3c]
cmp edx, dword [ecx + 8]
jge 0x43db34
test ebp, ebp
js 0x43db34
cmp ebp, dword [ecx + 0xc]
jge 0x43db34
mov ecx, dword [ecx + 0x10]
imul ecx, ebp
mov ebp, edx
sar ebp, 3
add ecx, ebp
mov ebp, dword [esp + 0x3c]
mov ebp, dword [ebp + 0x14]
movzx ebp, byte [ecx + ebp]
and dl, 7
mov ecx, 7
sub cl, dl
shr ebp, cl
and ebp, 1
jmp 0x43db36
xor ebp, ebp
shl eax, 5
or eax, esi
add eax, eax
add eax, eax
add eax, eax
or eax, edi
lea esi, [eax + eax]
or esi, ebp
cmp dword [esp + 0x94], 0
je 0x43db9e
test ebx, ebx
js 0x43db9e
mov edx, dword [esp + 0x98]
cmp ebx, dword [edx + 8]
jge 0x43db9e
cmp dword [esp + 0x14], 0
jl 0x43db9e
mov eax, dword [esp + 0x14]
mov ecx, edx
cmp eax, dword [ecx + 0xc]
jge 0x43db9e
mov eax, ecx
mov edx, dword [eax + 0x10]
imul edx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov ecx, ebx
sar ecx, 3
add edx, ecx
movzx edx, byte [edx + eax]
mov al, bl
and al, 7
mov ecx, 7
sub cl, al
shr edx, cl
and edx, 1
jne 0x43dbc8
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43dbc8
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
or dword [esp + 0x18], 0x8000
mov eax, dword [esp + 0x38]
shl dword [esp + 0x1c], 1
shl dword [esp + 0xa4], 1
shl dword [esp + 0x18], 1
shr byte [esp + 0x80], 1
inc eax
inc ebx
mov dword [esp + 0x38], eax
cmp eax, 8
jl 0x43dab1
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, dword [esp + 0x84]
jl 0x43da50
jmp case.default.0x43d152
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, edx
imul ecx, eax
movzx ebp, byte [ecx + edi]
add ecx, edi
mov dword [esp + 0x2c], ecx
shl ebp, 8
inc ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], ecx
cmp eax, 1
jl 0x43dc6f
lea ecx, [eax - 1]
imul ecx, edx
movzx esi, byte [ecx + edi]
add ecx, edi
shl esi, 8
inc ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x24], ecx
cmp eax, 2
jl 0x43dc6b
lea ecx, [eax - 2]
imul ecx, edx
movzx ebx, byte [ecx + edi]
add ecx, edi
shl ebx, 8
inc ecx
jmp 0x43dc7e
xor ecx, ecx
jmp 0x43dc7c
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0xa4], ecx
xor ebx, ebx
mov esi, dword [esp + 0x9c]
mov esi, dword [esi]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x80], esi
cmp esi, 0xfffffff8
jl 0x43de4b
cmp esi, 8
jg 0x43de4b
mov esi, dword [esp + 0xa0]
mov esi, dword [esi]
add eax, esi
js 0x43dcc4
imul eax, edx
lea esi, [edi + eax]
movzx edi, byte [esi]
shl edi, 8
inc esi
jmp 0x43dcc8
xor esi, esi
xor edi, edi
mov eax, 0xf
sub eax, dword [esp + 0x80]
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x84], eax
jle case.default.0x43d152
mov edx, dword [esp + 0x84]
jmp 0x43dd04
mov esi, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, edx
jge 0x43dd52
test ecx, ecx
je 0x43dd1d
movzx eax, byte [ecx]
or ebx, eax
inc ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x43dd37
movzx eax, byte [eax]
or dword [esp + 0xa4], eax
inc dword [esp + 0x24]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
inc dword [esp + 0x34]
or ebp, eax
test esi, esi
je 0x43dd52
movzx eax, byte [esi]
or edi, eax
inc esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
cmp dword [esp + 0x20], edx
jge 0x43de36
mov ecx, dword [esp + 0xa4]
mov esi, ebp
shr esi, 4
and esi, 0x3000
and ecx, 0x3c000
or esi, ecx
mov ecx, dword [esp + 0x4c]
shr esi, 4
mov eax, edi
mov edx, ebx
shr eax, cl
and edx, 0x1c000
or esi, edx
shr esi, 7
and eax, 1
or esi, eax
cmp dword [esp + 0x94], 0
je 0x43ddc7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
call fcn.0043be90
test eax, eax
jne 0x43de01
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43de01
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
mov eax, dword [esp + 0xa0]
or ebp, 0x8000
cmp dword [eax], 0
jne 0x43de01
or edi, 0x8000
mov eax, dword [esp + 0x38]
shl dword [esp + 0xa4], 1
inc dword [esp + 0x20]
shr byte [esp + 0x80], 1
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
inc eax
add ebx, ebx
add ebp, ebp
add edi, edi
mov dword [esp + 0x38], eax
cmp eax, 8
jl 0x43dd62
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, edx
jl 0x43dd00
jmp case.default.0x43d152
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x84], eax
jle case.default.0x43d152
jmp 0x43de64
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jge 0x43deb1
test ecx, ecx
je 0x43de8c
movzx eax, byte [ecx]
or dword [esp + 0x1c], eax
inc ecx
mov dword [esp + 0x30], ecx
test edx, edx
je 0x43de9f
movzx ecx, byte [edx]
or dword [esp + 0xa4], ecx
inc edx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x34]
movzx edx, byte [eax]
or ebp, edx
inc eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
cmp ebx, dword [esp + 0x84]
jge 0x43dfff
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
mov ebp, dword [ecx]
mov edx, dword [edx]
add ebp, dword [esp + 0x14]
shr eax, 0xe
shr esi, 0xe
shr edi, 0x10
and eax, 7
and esi, 0xf
and edi, 3
add edx, ebx
js 0x43df44
mov ecx, dword [esp + 0x3c]
cmp edx, dword [ecx + 8]
jge 0x43df44
test ebp, ebp
js 0x43df44
cmp ebp, dword [ecx + 0xc]
jge 0x43df44
mov ecx, dword [ecx + 0x10]
imul ecx, ebp
mov ebp, edx
sar ebp, 3
add ecx, ebp
mov ebp, dword [esp + 0x3c]
mov ebp, dword [ebp + 0x14]
movzx ebp, byte [ecx + ebp]
and dl, 7
mov ecx, 7
sub cl, dl
shr ebp, cl
and ebp, 1
jmp 0x43df46
xor ebp, ebp
shl eax, 4
or eax, esi
add eax, eax
add eax, eax
or eax, edi
lea esi, [eax + eax]
or esi, ebp
cmp dword [esp + 0x94], 0
je 0x43dfac
test ebx, ebx
js 0x43dfac
mov edx, dword [esp + 0x98]
cmp ebx, dword [edx + 8]
jge 0x43dfac
cmp dword [esp + 0x14], 0
jl 0x43dfac
mov eax, dword [esp + 0x14]
mov ecx, edx
cmp eax, dword [ecx + 0xc]
jge 0x43dfac
mov eax, ecx
mov edx, dword [eax + 0x10]
imul edx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov ecx, ebx
sar ecx, 3
add edx, ecx
movzx edx, byte [edx + eax]
mov al, bl
and al, 7
mov ecx, 7
sub cl, al
shr edx, cl
and edx, 1
jne 0x43dfd6
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43dfd6
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
or dword [esp + 0x18], 0x8000
mov eax, dword [esp + 0x38]
shl dword [esp + 0x1c], 1
shl dword [esp + 0xa4], 1
shl dword [esp + 0x18], 1
shr byte [esp + 0x80], 1
inc eax
inc ebx
mov dword [esp + 0x38], eax
cmp eax, 8
jl 0x43dec1
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, dword [esp + 0x84]
jl 0x43de60
jmp case.default.0x43d152
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, edx
imul ecx, eax
movzx ebp, byte [ecx + esi]
add ecx, esi
mov dword [esp + 0x2c], ecx
inc ecx
shl ebp, 8
mov dword [esp + 0x34], ecx
cmp eax, 1
jl 0x43e05c
lea ecx, [eax - 1]
imul ecx, edx
movzx edi, byte [ecx + esi]
add ecx, esi
shl edi, 8
mov dword [esp + 0xa4], edi
inc ecx
jmp 0x43e065
xor ecx, ecx
mov dword [esp + 0xa4], ecx
mov edi, dword [esp + 0x9c]
mov edi, dword [edi]
mov dword [esp + 0x24], ecx
cmp edi, 0xfffffff8
jl 0x43e1f2
cmp edi, 8
jg 0x43e1f2
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx]
add eax, ebx
js 0x43e0a0
imul eax, edx
movzx ebx, byte [esi + eax]
add esi, eax
shl ebx, 8
inc esi
jmp 0x43e0a4
xor esi, esi
xor ebx, ebx
mov edx, dword [esp + 0x84]
mov eax, 0xf
sub eax, edi
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], eax
test edx, edx
jle case.default.0x43d152
jmp 0x43e0d4
mov esi, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, edx
jge 0x43e10e
test ecx, ecx
je 0x43e0f2
movzx eax, byte [ecx]
or dword [esp + 0xa4], eax
inc ecx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x34]
movzx edi, byte [eax]
inc eax
or ebp, edi
mov dword [esp + 0x34], eax
test esi, esi
je 0x43e10e
movzx eax, byte [esi]
or ebx, eax
inc esi
mov dword [esp + 0x40], esi
xor edi, edi
mov byte [esp + 0x80], 0x80
jmp 0x43e120
cmp dword [esp + 0x20], edx
jge 0x43e1dd
mov ecx, dword [esp + 0xa4]
mov esi, ebp
shr esi, 6
and esi, 0x3c00
and ecx, 0x7c000
or esi, ecx
mov ecx, dword [esp + 0x4c]
mov edx, ebx
shr edx, cl
shr esi, 9
and edx, 1
or esi, edx
cmp dword [esp + 0x94], 0
je 0x43e178
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0xa0]
call fcn.0043be90
test eax, eax
jne 0x43e1b2
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x54]
mov ecx, dword [eax + 0x50]
push edx
push esi
call fcn.0043b2d0
test eax, eax
je 0x43e1b2
mov eax, dword [esp + 0x2c]
mov cl, byte [esp + 0x80]
mov edx, dword [esp + 0xa0]
or byte [eax], cl
or ebp, 0x8000
cmp dword [edx], 0
jne 0x43e1b2
or ebx, 0x8000
shl dword [esp + 0xa4], 1
inc dword [esp + 0x20]
shr byte [esp + 0x80], 1
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
inc edi
add ebp, ebp
add ebx, ebx
cmp edi, 8
jl 0x43e120
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, edx
jl 0x43e0d0
jmp case.default.0x43d152
mov edx, dword [esp + 0x84]
xor eax, eax
xor ebx, ebx
test edx, edx
jle case.default.0x43d152
jmp 0x43e214
mov ecx, dword [esp + 0x24]
add eax, 8
mov dword [esp + 0x44], eax
cmp eax, edx
jge 0x43e240
test ecx, ecx
je 0x43e232
movzx eax, byte [ecx]
or dword [esp + 0xa4], eax
inc ecx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax]
or ebp, ecx
inc eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov byte [esp + 0x80], 0x80
cmp ebx, edx
jge 0x43e376
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov edi, dword [edx]
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx]
add edi, dword [esp + 0x14]
mov esi, ebp
shr eax, 0xe
shr esi, 0x10
and eax, 0x1f
and esi, 0xf
add edx, ebx
js 0x43e2c2
mov ecx, dword [esp + 0x3c]
cmp edx, dword [ecx + 8]
jge 0x43e2c2
test edi, edi
js 0x43e2c2
cmp edi, dword [ecx + 0xc]
jge 0x43e2c2
mov ecx, dword [ecx + 0x10]
imul ecx, edi
mov edi, edx
sar edi, 3
add ecx, edi
mov edi, dword [esp + 0x3c]
mov edi, dword [edi + 0x14]
movzx edi, byte [ecx + edi]
and dl, 7
mov ecx, 7
sub cl, dl
shr edi, cl
and edi, 1
jmp 0x43e2c4
xor edi, edi
shl eax, 4
or eax, esi
lea esi, [eax + eax]
or esi, edi
cmp dword [esp + 0x94], 0
je 0x43e324
test ebx, ebx
js 0x43e324
mov edx, dword [esp + 0x98]
cmp ebx, dword [edx + 8]
jge 0x43e324
cmp dword [esp + 0x14], 0
jl 0x43e324
mov eax, dword [esp + 0x14]
mov ecx, edx
cmp eax, dword [ecx + 0xc]
jge 0x43e324
mov eax, ecx
mov edx, dword [eax + 0x10]
imul edx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov ecx, ebx
sar ecx, 3
add edx, ecx
movzx edx, byte [edx + eax]
mov al, bl
and al, 7
mov ecx, 7
sub cl, al
shr edx, cl
and edx, 1
jne 0x43e34c
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x54]
push ecx
mov ecx, dword [eax + 0x50]
push esi
call fcn.0043b2d0
test eax, eax
je 0x43e34c
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x80]
or byte [eax], dl
or ebp, 0x8000
mov eax, dword [esp + 0x38]
shl dword [esp + 0xa4], 1
shr byte [esp + 0x80], 1
mov edx, dword [esp + 0x84]
inc eax
add ebp, ebp
inc ebx
mov dword [esp + 0x38], eax
cmp eax, 8
jl 0x43e250
mov eax, dword [esp + 0x44]
inc dword [esp + 0x2c]
cmp eax, edx
jl 0x43e210
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x88]
jl 0x43d0d0
mov eax, dword [esp + 0x3c]
jmp 0x43e3a4
mov eax, ebx
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret 0x28