Function at 0x4101d0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov ebp, dword [ebp]
mov ebx, dword [esp + 0x54]
mov dword [esp + 8], ebp
test edx, edx
je 0x41043c
mov ebp, dword [esp + 0x40]
mov al, byte [ebp + 8]
mov ecx, eax
and ecx, 4
mov dword [esp], ecx
jne 0x410444
cmp al, 2
je 0x410454
jbe 0x4105d0
cmp al, 4
je 0x410610
cmp al, 6
jne case.0x4105eb.0
mov ebp, dword [esp + 0x40]
cmp byte [ebp + 9], 8
je 0x410e30
mov ebx, dword [esp + 0x64]
test ebx, ebx
je 0x41024f
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x4106f0
mov ebp, dword [esp + 8]
test ebp, ebp
je case.0x4105eb.0
xor ebx, ebx
mov eax, edi
mov dword [esp + 0x10], ebx
jmp 0x4102ae
xor ecx, ecx
mov cl, byte [edx + 3]
mov byte [edi], cl
mov cx, word [edx + 2]
mov byte [edi + 1], cl
xor ecx, ecx
mov cl, byte [edx + 5]
mov byte [edi + 2], cl
mov cx, word [edx + 4]
mov byte [edi + 3], cl
xor ecx, ecx
mov cl, byte [edx + 7]
mov byte [edi + 4], cl
mov cx, word [edx + 6]
mov byte [edi + 5], cl
mov esi, dword [esp + 0x10]
add eax, 8
inc esi
add edi, 6
mov dword [esp + 0x10], esi
mov esi, dword [esp + 8]
cmp dword [esp + 0x10], esi
je 0x410a61
xor ecx, ecx
mov bl, byte [eax + 7]
and ebx, 0xff
mov cl, byte [eax + 6]
shl ecx, 8
mov esi, ebx
add ecx, esi
cmp cx, 0xffff
je 0x410a50
test cx, cx
je 0x410265
mov bl, byte [eax + 2]
and ecx, 0xffff
and ebx, 0xff
mov dword [esp + 4], ecx
mov esi, ebx
mov bl, byte [eax + 3]
shl esi, 8
and ebx, 0xff
mov ebp, ebx
mov bl, byte [eax + 4]
and ebx, 0xff
add ebp, esi
mov esi, ebx
mov bl, byte [eax + 5]
and ebx, 0xff
mov word [esp + 0xc], bp
shl esi, 8
mov ebp, ebx
add esi, ebp
mov ebp, 0xffff
mov bl, byte [eax + 1]
sub ebp, ecx
xor ecx, ecx
and ebx, 0xff
mov cl, byte [eax]
mov dword [esp], ebp
shl ecx, 8
mov ebp, ebx
add ebp, ecx
mov ecx, dword [esp + 4]
and ebp, 0xffff
mov ebx, dword [esp]
imul ebp, ecx
mov cx, word [edx + 2]
and esi, 0xffff
and ecx, 0xffff
imul ecx, ebx
lea ecx, [ebp + ecx + 0x8000]
mov ebp, ecx
shr ebp, 0x10
add ecx, ebp
shr ecx, 0x10
mov ebp, ecx
mov byte [edi + 1], cl
shr bp, 8
mov ecx, dword [esp + 0xc]
mov ebx, ebp
and ecx, 0xffff
mov byte [edi], bl
mov ebp, dword [esp + 4]
imul ecx, ebp
mov bp, word [edx + 4]
mov ebx, dword [esp]
and ebp, 0xffff
imul ebp, ebx
lea ecx, [ecx + ebp + 0x8000]
mov ebp, ecx
shr ebp, 0x10
add ecx, ebp
shr ecx, 0x10
mov ebp, ecx
mov byte [edi + 3], cl
shr bp, 8
mov ebx, ebp
mov ebp, dword [esp + 4]
mov byte [edi + 2], bl
mov ebx, dword [esp]
mov cx, word [edx + 6]
and ecx, 0xffff
imul esi, ebp
imul ecx, ebx
lea ecx, [esi + ecx + 0x8000]
mov esi, ecx
shr esi, 0x10
add ecx, esi
shr ecx, 0x10
mov esi, ecx
mov byte [edi + 5], cl
shr si, 8
mov ebx, esi
mov byte [edi + 4], bl
jmp 0x410291
mov edx, dword [esp + 0x40]
mov al, byte [edx + 8]
mov ecx, eax
and ecx, 4
mov dword [esp], ecx
mov ebx, dword [esp]
test ebx, ebx
je 0x41043c
mov edx, dword [esp + 0x40]
and eax, 0xfffffffb
mov byte [edx + 8], al
mov al, byte [edx + 0xa]
dec eax
mov byte [edx + 0xa], al
mul byte [edx + 9]
mov byte [edx + 0xb], al
cmp al, 7
jbe 0x4105f2
shr al, 3
mov ecx, dword [esp + 8]
and eax, 0xff
imul eax, ecx
mov ebx, dword [esp + 0x40]
mov dword [ebx + 4], eax
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
test esi, esi
je 0x41043c
cmp al, 3
je 0x41043c
cmp al, 2
jne 0x410217
mov ebp, dword [esp + 0x40]
cmp byte [ebp + 9], 8
je 0x411055
mov ebp, dword [esp + 0x60]
test ebp, ebp
je 0x411270
mov ecx, dword [esp + 8]
test ecx, ecx
je case.0x4105eb.0
mov eax, edi
mov dword [esp], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x6c]
jmp 0x41050d
xor edx, edx
mov edi, dword [esp + 0x60]
mov dl, byte [esp + 4]
and ebx, 0xff
sar edx, cl
and esi, 0xff
mov edx, dword [edi + edx*4]
mov dx, word [edx + ebx*2]
mov byte [eax + 1], dl
mov ebx, edx
shr bx, 8
xor edx, edx
mov dl, byte [esp + 0xc]
mov byte [eax], bl
sar edx, cl
mov edx, dword [edi + edx*4]
mov dx, word [edx + esi*2]
mov byte [eax + 3], dl
mov ebx, edx
shr bx, 8
xor edx, edx
mov dl, byte [esp + 0x10]
mov byte [eax + 2], bl
sar edx, cl
xor ebx, ebx
mov bl, byte [esp + 0x18]
mov edx, dword [edi + edx*4]
mov dx, word [edx + ebx*2]
mov ebx, edx
mov byte [eax + 5], dl
shr bx, 8
mov byte [eax + 4], bl
mov edx, dword [esp]
add eax, 6
inc edx
mov dword [esp], edx
mov edx, dword [esp + 8]
cmp dword [esp], edx
je 0x410a30
mov dl, byte [eax + 1]
mov bl, byte [eax]
mov byte [esp + 4], dl
mov dl, byte [eax + 3]
mov byte [esp + 0xc], dl
mov dl, byte [eax + 4]
mov byte [esp + 0x18], dl
mov dl, byte [eax + 5]
mov byte [esp + 0x10], dl
mov dl, byte [esp + 4]
and edx, 0xff
mov ebp, ebx
shl ebp, 8
mov edi, edx
mov edx, dword [esp + 0x14]
add edi, ebp
movzx esi, byte [eax + 2]
cmp word [edx + 2], di
jne 0x410490
mov dl, byte [esp + 0xc]
mov ebp, esi
shl ebp, 8
and edx, 0xff
mov edi, edx
mov edx, dword [esp + 0x14]
add edi, ebp
cmp word [edx + 4], di
jne 0x410490
mov dl, byte [esp + 0x18]
shl edx, 8
mov ebp, edx
mov dl, byte [esp + 0x10]
and edx, 0xff
mov edi, edx
mov edx, dword [esp + 0x14]
add edi, ebp
cmp word [edx + 6], di
jne 0x410490
mov ebx, dword [esp + 0x28]
xor edx, edx
mov dl, byte [ebx + 3]
mov byte [eax], dl
mov dx, word [ebx + 2]
mov byte [eax + 1], dl
xor edx, edx
mov dl, byte [ebx + 5]
mov byte [eax + 2], dl
mov dx, word [ebx + 4]
mov byte [eax + 3], dl
xor edx, edx
mov dl, byte [ebx + 7]
mov byte [eax + 4], dl
mov dx, word [ebx + 6]
mov byte [eax + 5], dl
jmp 0x4104f6
test al, al
jne case.0x4105eb.0
mov ebp, dword [esp + 0x40]
cmp byte [ebp + 9], 0x10
ja case.0x4105eb.0
xor ecx, ecx
mov cl, byte [ebp + 9]
jmp dword [ecx*4 + 0x58e350]
and eax, 0xff
mov edx, dword [esp + 8]
imul eax, edx
add eax, 7
shr eax, 3
jmp 0x410435
mov ebp, dword [esp + 0x40]
cmp byte [ebp + 9], 8
je 0x410fa0
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x410632
mov ebp, dword [esp + 0x60]
test ebp, ebp
jne 0x410930
mov esi, dword [esp + 8]
test esi, esi
je case.0x4105eb.0
mov ecx, edi
xor eax, eax
mov dword [esp], edx
jmp 0x410669
mov esi, dword [esp]
xor ebx, ebx
mov bl, byte [esi + 9]
mov byte [edi], bl
mov bx, word [esi + 8]
mov byte [edi + 1], bl
inc eax
add ecx, 4
add edi, 2
cmp eax, dword [esp + 8]
je 0x410a30
xor ebx, ebx
mov dl, byte [ecx + 3]
and edx, 0xff
mov bl, byte [ecx + 2]
shl ebx, 8
mov esi, edx
add esi, ebx
cmp si, 0xffff
je 0x410a44
test si, si
je 0x410647
mov dl, byte [ecx + 1]
xor ebx, ebx
mov bl, byte [ecx]
and edx, 0xff
shl ebx, 8
mov ebp, edx
add ebp, ebx
mov edx, dword [esp + 0x50]
and esi, 0xffff
and ebp, 0xffff
mov ebx, 0xffff
imul ebp, esi
sub ebx, esi
mov si, word [edx + 8]
and esi, 0xffff
imul ebx, esi
lea ebx, [ebp + ebx + 0x8000]
mov esi, ebx
shr esi, 0x10
add ebx, esi
shr ebx, 0x10
mov esi, ebx
mov byte [edi + 1], bl
shr si, 8
mov edx, esi
mov byte [edi], dl
jmp 0x410658
mov esi, dword [esp + 0x68]
test esi, esi
je 0x41024f
mov ebx, dword [esp + 8]
test ebx, ebx
je case.0x4105eb.0
mov ecx, dword [esp + 0x6c]
mov eax, edi
mov dword [esp], 0
mov ebp, dword [esp + 0x50]
mov dword [esp + 4], ecx
jmp 0x410766
xor ebx, ebx
mov bl, byte [edx + 3]
mov byte [edi], bl
mov bx, word [edx + 2]
mov byte [edi + 1], bl
xor ebx, ebx
mov bl, byte [edx + 5]
mov byte [edi + 2], bl
mov bx, word [edx + 4]
mov byte [edi + 3], bl
xor ebx, ebx
mov bl, byte [edx + 7]
mov byte [edi + 4], bl
mov bx, word [edx + 6]
mov byte [edi + 5], bl
mov esi, dword [esp]
mov ebx, dword [esp + 8]
inc esi
add eax, 8
mov dword [esp], esi
add edi, 6
cmp dword [esp], ebx
je 0x410d90
xor ebx, ebx
mov cl, byte [eax + 7]
and ecx, 0xff
mov bl, byte [eax + 6]
shl ebx, 8
mov esi, ecx
add ebx, esi
cmp bx, 0xffff
je 0x410d07
test bx, bx
je 0x410720
and ebx, 0xffff
mov esi, 0xffff
sub esi, ebx
mov dword [esp + 0x10], ebx
mov bx, word [ebp + 2]
mov cl, byte [esp + 4]
and ebx, 0xffff
mov dword [esp + 0x14], esi
imul ebx, esi
mov dword [esp + 0x28], ebx
xor ebx, ebx
mov bl, byte [eax + 1]
sar ebx, cl
mov cl, byte [eax]
and ecx, 0xff
mov esi, ecx
mov ecx, dword [esp + 0x68]
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x10]
mov bx, word [ebx + esi*2]
mov esi, dword [esp + 0x28]
and ebx, 0xffff
imul ebx, ecx
mov cl, byte [esp + 4]
lea ebx, [esi + ebx + 0x8000]
mov esi, ebx
shr esi, 0x10
add esi, ebx
shr esi, 0x10
mov ebx, esi
and ebx, 0xff
sar ebx, cl
mov ecx, esi
movzx esi, ch
mov ecx, dword [esp + 0x64]
mov ebx, dword [ecx + ebx*4]
mov bx, word [ebx + esi*2]
mov esi, ebx
mov byte [edi + 1], bl
shr si, 8
mov ecx, esi
mov esi, dword [esp + 0x14]
mov byte [edi], cl
mov cl, byte [esp + 4]
mov bx, word [ebp + 4]
and ebx, 0xffff
imul ebx, esi
mov dword [esp + 0x28], ebx
xor ebx, ebx
mov bl, byte [eax + 3]
sar ebx, cl
mov cl, byte [eax + 2]
and ecx, 0xff
mov esi, ecx
mov ecx, dword [esp + 0x68]
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x10]
mov bx, word [ebx + esi*2]
mov esi, dword [esp + 0x28]
and ebx, 0xffff
imul ebx, ecx
lea ebx, [esi + ebx + 0x8000]
mov esi, ebx
shr esi, 0x10
add ebx, esi
shr ebx, 0x10
mov cl, bl
and ecx, 0xff
mov esi, ecx
mov cl, byte [esp + 4]
sar esi, cl
mov ecx, dword [esp + 0x64]
movzx ebx, bh
mov esi, dword [ecx + esi*4]
mov bx, word [esi + ebx*2]
mov esi, ebx
shr si, 8
mov ecx, esi
mov byte [edi + 2], cl
mov byte [edi + 3], bl
mov bx, word [ebp + 6]
mov esi, dword [esp + 0x14]
and ebx, 0xffff
mov cl, byte [esp + 4]
imul ebx, esi
mov dword [esp + 0x14], ebx
xor ebx, ebx
mov bl, byte [eax + 5]
sar ebx, cl
mov cl, byte [eax + 4]
and ecx, 0xff
mov esi, ecx
mov ecx, dword [esp + 0x68]
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x10]
mov bx, word [ebx + esi*2]
mov esi, dword [esp + 0x14]
and ebx, 0xffff
imul ebx, ecx
lea ebx, [esi + ebx + 0x8000]
mov esi, ebx
shr esi, 0x10
add ebx, esi
shr ebx, 0x10
mov cl, bl
and ecx, 0xff
mov esi, ecx
mov cl, byte [esp + 4]
sar esi, cl
mov ecx, dword [esp + 0x64]
movzx ebx, bh
mov esi, dword [ecx + esi*4]
mov bx, word [esi + ebx*2]
mov esi, ebx
mov byte [edi + 5], bl
shr si, 8
mov ecx, esi
mov byte [edi + 4], cl
jmp 0x41074c
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x410632
mov ecx, dword [esp + 8]
test ecx, ecx
je case.0x4105eb.0
mov ebx, edi
xor esi, esi
mov ebp, edx
mov ecx, dword [esp + 0x6c]
jmp 0x410973
xor eax, eax
mov al, byte [ebp + 9]
mov byte [edi], al
mov ax, word [ebp + 8]
mov byte [edi + 1], al
inc esi
add ebx, 4
add edi, 2
cmp esi, dword [esp + 8]
je 0x410a30
xor eax, eax
xor edx, edx
mov al, byte [ebx + 2]
mov dl, byte [ebx + 3]
shl eax, 8
add eax, edx
cmp ax, 0xffff
je 0x410cf0
test ax, ax
je 0x410954
and eax, 0xffff
mov edx, 0xffff
sub edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x50]
mov ax, word [edx + 8]
mov edx, eax
mov eax, dword [esp + 4]
and edx, 0xffff
imul edx, eax
xor eax, eax
mov dword [esp + 4], edx
xor edx, edx
mov al, byte [ebx]
mov dl, byte [ebx + 1]
mov dword [esp + 0x14], eax
sar edx, cl
mov eax, dword [esp + 0x68]
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x14]
mov dx, word [edx + eax*2]
mov eax, dword [esp]
and edx, 0xffff
imul edx, eax
mov eax, dword [esp + 4]
lea edx, [eax + edx + 0x8000]
mov dword [esp], edx
shr edx, 0x10
mov eax, dword [esp]
add edx, eax
xor eax, eax
shr edx, 0x10
mov al, dl
movzx edx, dh
mov dword [esp], edx
mov edx, dword [esp + 0x64]
sar eax, cl
mov eax, dword [edx + eax*4]
mov edx, dword [esp]
mov ax, word [eax + edx*2]
mov edx, eax
mov byte [edi + 1], al
shr dx, 8
mov byte [edi], dl
jmp 0x410962
mov ebx, dword [esp + 0x40]
mov al, byte [ebx + 8]
mov esi, eax
and esi, 4
mov dword [esp], esi
jmp case.0x4105eb.0
mov bx, word [ecx]
mov word [edi], bx
jmp 0x410658
mov ecx, dword [eax]
mov dword [edi], ecx
mov cx, word [eax + 4]
mov word [edi + 4], cx
jmp 0x410291
mov edi, dword [esp + 0x40]
mov al, byte [edi + 8]
mov ebp, eax
and ebp, 4
mov dword [esp], ebp
jmp case.0x4105eb.0
mov ebx, dword [esp + 8]
test ebx, ebx
je case.0x4105eb.0
xor eax, eax
mov ebx, 7
mov ebp, eax
mov dword [esp + 4], edx
jmp 0x410a9a
inc edi
mov bl, 7
inc ebp
cmp ebp, dword [esp + 8]
je 0x410a30
xor edx, edx
mov al, byte [edi]
mov cl, bl
mov dl, al
sar edx, cl
mov cx, word [esi + 8]
and edx, 1
and ecx, 0xffff
cmp edx, ecx
je 0x410da4
test ebx, ebx
je 0x410a90
dec ebx
jmp 0x410a93
test ebx, ebx
je 0x411430
mov ebp, dword [esp + 8]
test ebp, ebp
je case.0x4105eb.0
mov ebp, edi
xor edi, edi
mov eax, 6
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp], ebx
jmp 0x410b0a
inc ebp
mov al, 6
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 8]
inc ebx
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], edx
je 0x410a30
xor edx, edx
mov bl, byte [ebp]
mov cl, al
mov dl, bl
sar edx, cl
mov edi, edx
mov cx, word [esi + 8]
and edi, 3
and ecx, 0xffff
cmp edi, ecx
je 0x410dd0
and edx, 3
mov edi, edx
shl edi, 4
lea ecx, [edx*4]
or ecx, edi
mov edi, dword [esp]
or ecx, edx
shl edx, 6
or ecx, edx
mov dl, byte [edi + ecx]
mov cl, al
shr dl, 6
mov edi, 0x3f3f
and edx, 0xff
shl edx, cl
mov ecx, 6
sub ecx, eax
sar edi, cl
and ebx, edi
or ebx, edx
mov byte [ebp], bl
test eax, eax
je 0x410af0
sub eax, 2
jmp 0x410af3
test ebx, ebx
je 0x4114ac
mov ebp, dword [esp + 8]
test ebp, ebp
je case.0x4105eb.0
xor eax, eax
mov dword [esp], edx
jmp 0x410baa
and ecx, 0xff
mov cl, byte [ebx + ecx]
mov byte [edi + eax], cl
inc eax
cmp eax, dword [esp + 8]
je 0x410a30
mov cl, byte [edi + eax]
mov dl, cl
and edx, 0xff
cmp dx, word [esi + 8]
jne 0x410b93
mov edx, dword [esp]
mov cx, word [edx + 8]
mov byte [edi + eax], cl
jmp 0x410b9f
test ebx, ebx
je 0x411371
mov ebp, dword [esp + 8]
test ebp, ebp
je case.0x4105eb.0
mov ebp, edi
xor edi, edi
mov eax, 4
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp], ebx
jmp 0x410c0b
inc ebp
mov al, 4
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 8]
inc edi
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], edx
je 0x410a30
xor edx, edx
mov bl, byte [ebp]
mov cl, al
mov dl, bl
sar edx, cl
mov edi, edx
mov cx, word [esi + 8]
and edi, 0xf
and ecx, 0xffff
cmp edi, ecx
je 0x410e00
and edx, 0xf
mov edi, dword [esp]
mov ecx, edx
shl ecx, 4
or ecx, edx
mov dl, byte [edi + ecx]
mov cl, al
shr dl, 4
mov edi, 0xf0f
and edx, 0xff
shl edx, cl
mov ecx, 4
sub ecx, eax
sar edi, cl
and ebx, edi
or ebx, edx
mov byte [ebp], bl
test eax, eax
je 0x410bf1
sub eax, 4
jmp 0x410bf4
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x4113ec
mov ebp, dword [esp + 8]
test ebp, ebp
je case.0x4105eb.0
mov ecx, dword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0xc], edx
mov dword [esp], ecx
jmp 0x410cc6
mov cl, byte [esp]
and edx, 0xff
sar edx, cl
mov ebp, dword [esp + 0x60]
and ebx, 0xff
mov edx, dword [ebp + edx*4]
mov dx, word [edx + ebx*2]
mov ecx, edx
mov byte [edi + 1], dl
shr cx, 8
mov byte [edi], cl
inc eax
add edi, 2
cmp eax, dword [esp + 8]
je 0x4103f1
mov bl, byte [edi]
xor ecx, ecx
mov dl, byte [edi + 1]
mov ebp, ebx
shl ebp, 8
mov cl, dl
add ecx, ebp
cmp word [esi + 8], cx
jne 0x410c90
mov ebx, dword [esp + 0xc]
xor edx, edx
mov dl, byte [ebx + 9]
mov byte [edi], dl
mov dx, word [ebx + 8]
mov byte [edi + 1], dl
jmp 0x410cb8
xor eax, eax
xor edx, edx
mov dl, byte [ebx]
mov al, byte [ebx + 1]
mov dword [esp], edx
mov edx, dword [esp + 0x60]
sar eax, cl
jmp 0x410a12
xor ebx, ebx
mov cl, byte [esp + 4]
mov bl, byte [eax + 1]
sar ebx, cl
mov cl, byte [eax]
and ecx, 0xff
mov esi, ecx
mov ecx, dword [esp + 0x60]
mov ebx, dword [ecx + ebx*4]
mov bx, word [ebx + esi*2]
mov esi, ebx
mov byte [edi + 1], bl
shr si, 8
xor ebx, ebx
mov ecx, esi
mov byte [edi], cl
mov cl, byte [esp + 4]
mov bl, byte [eax + 3]
sar ebx, cl
mov cl, byte [eax + 2]
and ecx, 0xff
mov esi, ecx
mov ecx, dword [esp + 0x60]
mov ebx, dword [ecx + ebx*4]
mov bx, word [ebx + esi*2]
mov esi, ebx
mov byte [edi + 3], bl
shr si, 8
xor ebx, ebx
mov ecx, esi
mov byte [edi + 2], cl
mov cl, byte [esp + 4]
mov bl, byte [eax + 5]
sar ebx, cl
mov cl, byte [eax + 4]
and ecx, 0xff
mov esi, ecx
mov ecx, dword [esp + 0x60]
mov ebx, dword [ecx + ebx*4]
mov bx, word [ebx + esi*2]
jmp 0x410917
mov esi, dword [esp + 0x40]
mov al, byte [esi + 8]
mov edi, eax
and edi, 4
mov dword [esp], edi
jmp case.0x4105eb.0
mov ecx, 7
mov edx, 0x7f7f
sub ecx, ebx
sar edx, cl
and edx, eax
mov ecx, dword [esp + 4]
mov byte [edi], dl
mov ax, word [ecx + 8]
mov cl, bl
and eax, 0xffff
shl eax, cl
or eax, edx
mov byte [edi], al
jmp 0x410ab9
mov ecx, 6
mov edx, 0x3f3f
sub ecx, eax
mov edi, dword [esp + 0xc]
sar edx, cl
and edx, ebx
mov cl, al
mov byte [ebp], dl
mov bx, word [edi + 8]
and ebx, 0xffff
shl ebx, cl
or ebx, edx
mov byte [ebp], bl
jmp 0x410b6c
mov ecx, 4
mov edx, 0xf0f
sub ecx, eax
mov edi, dword [esp + 0xc]
sar edx, cl
and edx, ebx
mov cl, al
mov byte [ebp], dl
mov bx, word [edi + 8]
and ebx, 0xffff
shl ebx, cl
or ebx, edx
mov byte [ebp], bl
jmp 0x410c5f
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x411180
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x411180
test ebx, ebx
je 0x411180
mov esi, dword [esp + 8]
test esi, esi
je case.0x4105eb.0
mov esi, dword [esp + 8]
mov ecx, edi
mov dword [esp + 0x14], edx
mov dword [esp], ebx
lea eax, [esi + esi*2]
add eax, edi
mov dword [esp + 4], eax
jmp 0x410e9c
mov ebx, dword [esp + 0x14]
mov ax, word [ebx + 2]
mov byte [edi], al
mov ax, word [ebx + 4]
mov byte [edi + 1], al
mov ax, word [ebx + 6]
mov byte [edi + 2], al
add edi, 3
add ecx, 4
cmp edi, dword [esp + 4]
je 0x410a30
mov dl, byte [ecx + 3]
cmp dl, 0xff
je 0x410f78
test dl, dl
je 0x410e74
xor ebx, ebx
xor eax, eax
mov bl, byte [ecx]
mov al, dl
mov dword [esp + 0xc], ebx
mov ebx, 0xff
sub bx, ax
mov esi, dword [esp + 0x50]
mov ebp, ebx
imul bp, word [esi + 2]
mov esi, dword [esp + 0xc]
mov word [esp + 0x10], bp
mov ebp, dword [esp + 0x5c]
mov al, byte [ebp + esi]
mov esi, dword [esp + 0x10]
mul dl
mov ebp, dword [esp + 0x58]
lea eax, [esi + eax + 0x80]
movzx esi, ah
lea eax, [esi + eax]
movzx eax, ah
mov al, byte [ebp + eax]
mov ebp, dword [esp + 0x50]
mov byte [edi], al
mov al, byte [ecx + 1]
and eax, 0xff
mov esi, eax
mov eax, ebx
imul ax, word [ebp + 4]
mov ebp, dword [esp + 0x5c]
mov word [esp + 0xc], ax
mov al, byte [ebp + esi]
mov esi, dword [esp + 0xc]
mul dl
mov ebp, dword [esp + 0x58]
lea eax, [esi + eax + 0x80]
movzx esi, ah
lea eax, [esi + eax]
movzx eax, ah
mov al, byte [ebp + eax]
mov ebp, dword [esp + 0x50]
mov byte [edi + 1], al
mov al, byte [ecx + 2]
imul bx, word [ebp + 6]
and eax, 0xff
mov ebp, dword [esp + 0x5c]
mov al, byte [ebp + eax]
mul dl
mov edx, dword [esp + 0x58]
lea ebx, [ebx + eax + 0x80]
movzx eax, bh
add eax, ebx
movzx eax, ah
mov al, byte [edx + eax]
mov byte [edi + 2], al
jmp 0x410e8c
xor eax, eax
mov edx, dword [esp]
mov al, byte [ecx]
mov al, byte [edx + eax]
mov byte [edi], al
xor eax, eax
mov al, byte [ecx + 1]
mov al, byte [edx + eax]
mov byte [edi + 1], al
xor eax, eax
mov al, byte [ecx + 2]
mov al, byte [edx + eax]
mov byte [edi + 2], al
jmp 0x410e8c
mov ebp, dword [esp + 0x5c]
test ebp, ebp
je 0x411100
mov esi, dword [esp + 0x58]
test esi, esi
je 0x411100
test ebx, ebx
je 0x411100
mov esi, dword [esp + 8]
test esi, esi
je case.0x4105eb.0
xor ecx, ecx
mov dword [esp], edx
mov dword [esp + 0xc], ebx
jmp 0x410fec
mov ebx, dword [esp]
mov ax, word [ebx + 8]
mov byte [edi + ecx], al
inc ecx
cmp ecx, dword [esp + 8]
je 0x410a30
xor eax, eax
mov bl, byte [edi + ecx*2 + 1]
mov al, bl
cmp ax, 0xff
je 0x411044
test ax, ax
je 0x410fd7
xor edx, edx
mov esi, 0xff
mov dl, byte [edi + ecx*2]
mov ebp, dword [esp + 0x5c]
sub si, ax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x50]
imul si, word [edx + 8]
mov edx, dword [esp + 4]
mov al, byte [ebp + edx]
mov edx, dword [esp + 0x58]
mul bl
mov ebx, eax
lea ebx, [esi + ebx + 0x80]
movzx eax, bh
add eax, ebx
movzx eax, ah
mov al, byte [edx + eax]
mov byte [edi + ecx], al
jmp 0x410fe1
xor eax, eax
mov edx, dword [esp + 0xc]
mov al, byte [edi + ecx*2]
mov al, byte [edx + eax]
mov byte [edi + ecx], al
jmp 0x410fe1
test ebx, ebx
je 0x411314
mov ecx, dword [esp + 8]
test ecx, ecx
je case.0x4105eb.0
mov ecx, dword [esp + 8]
mov dword [esp], edx
lea eax, [ecx + ecx*2]
add eax, edi
mov dword [esp + 4], eax
jmp 0x4110b6
mov cl, byte [edi + 2]
mov byte [esp + 0xc], cl
and eax, 0xff
and edx, 0xff
xor ecx, ecx
mov al, byte [ebx + eax]
mov cl, byte [esp + 0xc]
mov byte [edi], al
mov al, byte [ebx + edx]
mov byte [edi + 1], al
mov al, byte [ebx + ecx]
mov byte [edi + 2], al
add edi, 3
cmp edi, dword [esp + 4]
je 0x410a30
xor edx, edx
mov al, byte [edi]
mov dl, al
cmp dx, word [esi + 2]
mov dl, byte [edi + 1]
jne 0x411080
xor ecx, ecx
mov cl, dl
cmp cx, word [esi + 4]
mov cl, byte [edi + 2]
mov byte [esp + 0xc], cl
jne 0x411087
and ecx, 0xff
cmp cx, word [esi + 6]
jne 0x411087
mov edx, dword [esp]
mov ax, word [edx + 2]
mov byte [edi], al
mov ax, word [edx + 4]
mov byte [edi + 1], al
mov ax, word [edx + 6]
mov byte [edi + 2], al
jmp 0x4110a9
mov ebx, dword [esp + 8]
xor ecx, ecx
mov ebp, 0xff
test ebx, ebx
je case.0x4105eb.0
mov ebx, dword [esp + 0x50]
mov dword [esp], ebx
jmp 0x411132
mov ax, word [edx + 8]
mov byte [edi + ecx], al
inc ecx
cmp ecx, dword [esp + 8]
je 0x410a61
mov bl, byte [edi + ecx*2 + 1]
cmp bl, 0xff
je 0x411175
test bl, bl
je 0x411120
mov al, bl
mov esi, ebp
and ebx, 0xff
sub si, bx
mov ebx, esi
mov esi, dword [esp]
mul byte [edi + ecx*2]
imul bx, word [esi + 8]
lea eax, [eax + ebx + 0x80]
mov ebx, eax
and ebx, 0xffff
movzx eax, ah
add eax, ebx
sar eax, 8
mov byte [edi + ecx], al
jmp 0x411127
mov al, byte [edi + ecx*2]
mov byte [edi + ecx], al
jmp 0x411127
mov ebp, dword [esp + 8]
test ebp, ebp
je case.0x4105eb.0
mov ebx, dword [esp + 8]
mov ecx, edi
lea eax, [ebx + ebx*2]
add eax, edi
mov dword [esp + 4], eax
jmp 0x4111c4
mov ax, word [edx + 2]
mov byte [edi], al
mov ax, word [edx + 4]
mov byte [edi + 1], al
mov ax, word [edx + 6]
mov byte [edi + 2], al
add edi, 3
add ecx, 4
cmp edi, dword [esp + 4]
je 0x410d90
mov bl, byte [ecx + 3]
cmp bl, 0xff
je 0x411254
test bl, bl
je 0x4111a0
xor eax, eax
mov esi, 0xff
mov al, bl
sub si, ax
mov al, bl
mov ebp, esi
imul bp, word [edx + 2]
mul byte [ecx]
lea eax, [eax + ebp + 0x80]
mov ebp, eax
and ebp, 0xffff
movzx eax, ah
add eax, ebp
mov ebp, esi
sar eax, 8
mov byte [edi], al
mov al, byte [ecx + 1]
imul bp, word [edx + 4]
mul bl
lea eax, [eax + ebp + 0x80]
mov ebp, eax
and ebp, 0xffff
movzx eax, ah
add eax, ebp
sar eax, 8
mov byte [edi + 1], al
mov al, byte [ecx + 2]
mul bl
mov ebx, esi
imul bx, word [edx + 6]
lea ebx, [eax + ebx + 0x80]
mov eax, ebx
and eax, 0xffff
movzx ebx, bh
add ebx, eax
sar ebx, 8
mov byte [edi + 2], bl
jmp 0x4111b4
mov al, byte [ecx]
mov byte [edi], al
mov al, byte [ecx + 1]
mov byte [edi + 1], al
mov al, byte [ecx + 2]
mov byte [edi + 2], al
jmp 0x4111b4
mov ebx, dword [esp + 8]
test ebx, ebx
je case.0x4105eb.0
xor ecx, ecx
mov dword [esp + 0xc], edx
jmp 0x411292
inc ecx
add edi, 6
cmp ecx, dword [esp + 8]
je 0x410d90
mov al, byte [edi + 4]
mov dl, byte [edi + 5]
mov byte [esp + 4], al
xor eax, eax
mov byte [esp], dl
mov al, byte [edi]
xor edx, edx
mov bl, byte [edi + 3]
shl eax, 8
mov dl, byte [edi + 1]
add eax, edx
movzx ebp, byte [edi + 2]
cmp word [esi + 2], ax
jne 0x411284
shl ebp, 8
and ebx, 0xff
add ebx, ebp
cmp word [esi + 4], bx
jne 0x411284
xor edx, edx
mov al, byte [esp + 4]
shl eax, 8
mov dl, byte [esp]
add eax, edx
cmp word [esi + 6], ax
jne 0x411284
mov ebx, dword [esp + 0xc]
xor eax, eax
mov al, byte [ebx + 3]
mov byte [edi], al
mov ax, word [ebx + 2]
mov byte [edi + 1], al
xor eax, eax
mov al, byte [ebx + 5]
mov byte [edi + 2], al
mov ax, word [ebx + 4]
mov byte [edi + 3], al
xor eax, eax
mov al, byte [ebx + 7]
mov byte [edi + 4], al
mov ax, word [ebx + 6]
mov byte [edi + 5], al
jmp 0x411284
mov ebx, dword [esp + 8]
test ebx, ebx
je case.0x4105eb.0
mov ebx, dword [esp + 8]
lea eax, [ebx + ebx*2]
add eax, edi
jmp 0x41133b
add edi, 3
cmp edi, eax
je 0x410d90
xor ecx, ecx
mov cl, byte [edi]
cmp cx, word [esi + 2]
jne 0x411330
xor ecx, ecx
mov cl, byte [edi + 1]
cmp cx, word [esi + 4]
jne 0x411330
xor ecx, ecx
mov cl, byte [edi + 2]
cmp cx, word [esi + 6]
jne 0x411330
mov cx, word [edx + 2]
mov byte [edi], cl
mov cx, word [edx + 4]
mov byte [edi + 1], cl
mov cx, word [edx + 6]
mov byte [edi + 2], cl
jmp 0x411330
mov ecx, dword [esp + 8]
test ecx, ecx
je case.0x4105eb.0
xor ecx, ecx
mov eax, 4
mov ebp, ecx
mov dword [esp + 4], edx
jmp 0x41139e
inc edi
mov al, 4
inc ebp
cmp ebp, dword [esp + 8]
je 0x410a30
xor ebx, ebx
mov dl, byte [edi]
mov cl, al
mov bl, dl
sar ebx, cl
mov cx, word [esi + 8]
and ebx, 0xf
and ecx, 0xffff
cmp ebx, ecx
je 0x4113c2
test eax, eax
je 0x411390
sub eax, 4
jmp 0x411393
mov ecx, 4
mov ebx, 0xf0f
sub ecx, eax
sar ebx, cl
and ebx, edx
mov ecx, dword [esp + 4]
mov byte [edi], bl
mov dx, word [ecx + 8]
mov cl, al
and edx, 0xffff
shl edx, cl
or edx, ebx
mov byte [edi], dl
jmp 0x4113b9
mov ecx, dword [esp + 8]
test ecx, ecx
je case.0x4105eb.0
xor ebx, ebx
mov ebp, dword [esp + 8]
jmp 0x41140c
inc ebx
add edi, 2
cmp ebx, ebp
je 0x410a30
xor eax, eax
xor ecx, ecx
mov al, byte [edi]
mov cl, byte [edi + 1]
shl eax, 8
add eax, ecx
cmp word [esi + 8], ax
jne 0x411400
xor eax, eax
mov al, byte [edx + 9]
mov byte [edi], al
mov ax, word [edx + 8]
mov byte [edi + 1], al
jmp 0x411400
mov ecx, dword [esp + 8]
test ecx, ecx
je case.0x4105eb.0
xor ecx, ecx
mov eax, 6
mov ebp, ecx
mov dword [esp + 4], edx
jmp 0x41145e
inc edi
mov al, 6
inc ebp
cmp ebp, dword [esp + 8]
je 0x410a30
xor ebx, ebx
mov dl, byte [edi]
mov cl, al
mov bl, dl
sar ebx, cl
mov cx, word [esi + 8]
and ebx, 3
and ecx, 0xffff
cmp ebx, ecx
je 0x411482
test eax, eax
je 0x411450
sub eax, 2
jmp 0x411453
mov ecx, 6
mov ebx, 0x3f3f
sub ecx, eax
sar ebx, cl
and ebx, edx
mov ecx, dword [esp + 4]
mov byte [edi], bl
mov dx, word [ecx + 8]
mov cl, al
and edx, 0xffff
shl edx, cl
or edx, ebx
mov byte [edi], dl
jmp 0x411479
mov ebx, dword [esp + 8]
xor ecx, ecx
test ebx, ebx
je case.0x4105eb.0
mov ebx, dword [esp + 8]
jmp 0x4114c9
inc ecx
cmp ecx, ebx
je 0x410a61
xor eax, eax
mov al, byte [edi + ecx]
cmp ax, word [esi + 8]
jne 0x4114c0
mov ax, word [edx + 8]
mov byte [edi + ecx], al
jmp 0x4114c0