Function at 0x452370
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x1bc
push ebx
push ebp
push esi
push edi
xor esi, esi
push 0x80
lea eax, [esp + 0x50]
push esi
push eax
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], esi
call fcn.0046a800
mov ecx, dword [esp + 0x1e0]
mov al, byte [ecx]
add esp, 0xc
xor ebp, ebp
test al, al
mov dword [esp + 0x1c], esi
je 0x452e83
jmp 0x4523c0
mov edx, dword [esp + 0x1d4]
mov al, byte [edx + ebp]
inc ebp
cmp al, 0x25
jne 0x452e72
mov edi, edx
mov cl, byte [edi + ebp]
cmp cl, 0x25
lea eax, [edi + ebp]
jne 0x4523e6
inc ebp
jmp 0x452e72
push 0xa
lea ecx, [esp + 0x4c]
push ecx
xor ebx, ebx
push eax
mov dword [esp + 0x30], ebx
call fcn.0046abf0
mov ecx, dword [esp + 0x54]
add esp, 0xc
sub ecx, edi
test eax, eax
je 0x452412
cmp byte [ecx + edi], 0x24
jne 0x452412
lea ebp, [ecx + 1]
dec eax
jmp 0x452415
or eax, 0xffffffff
xor ecx, ecx
or edx, 0xffffffff
cmp eax, edx
setne cl
mov dword [esp + 0x10], eax
test ecx, ecx
mov dword [esp + 0x38], ecx
jne 0x452433
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
cmp eax, 0x40
jge 0x452eb4
cmp eax, dword [esp + 0x14]
jle 0x452446
mov dword [esp + 0x14], eax
mov cl, byte [edi + ebp]
mov al, cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], edx
call fcn.00452200
test eax, eax
je 0x4525b2
lea esp, [esp]
movsx eax, cl
add eax, 0xffffffe0
inc ebp
cmp eax, 0x5a
ja case.0x4526cb.61
movzx edx, byte [eax + 0x453158]
jmp dword [edx*4 + 0x4530f8]
or ebx, 2
jmp case.0x452487.90
or ebx, 4
jmp case.0x452487.90
and ebx, 0xffffdfff
or ebx, 8
jmp case.0x452487.90
or ebx, 0x10
jmp case.0x452487.90
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4526d2
mov eax, dword [esp + 0x1d4]
lea ecx, [eax + ebp]
mov al, byte [ecx]
cmp al, 0x2e
mov dword [esp + 0x24], 1
je case.0x452487.90
or ebx, 0x40000
cmp al, 0x2a
je 0x452510
cmp al, 0x40
je 0x452510
push 0xa
lea edx, [esp + 0x40]
push edx
push ecx
call fcn.0046abf0
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1e0]
add esp, 0xc
sub ebp, eax
jmp case.0x452487.90
mov esi, dword [esp + 0x1d4]
inc ebp
lea edi, [esp + 0x34]
mov dword [esp + 0x34], ebp
or ebx, 0x80000
call fcn.004522d0
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x45255c
mov ecx, dword [esp + 0x1c]
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x45254d
mov eax, ecx
mov dword [esp + 0x20], eax
jmp 0x45257b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x45257b
test eax, eax
jne 0x452569
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x14]
jle 0x45257b
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, ecx
jle 0x45258d
mov edx, eax
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x1d4]
mov cl, byte [ecx + ebp]
mov al, cl
call fcn.00452200
test eax, eax
jne 0x452470
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1d8]
xor edi, edi
test ebx, 0x20000
je 0x4525f7
mov eax, dword [esp + 0x28]
inc word [esp + eax*2 + 0x4c]
lea eax, [esp + eax*2 + 0x4c]
mov eax, esi
imul eax, eax, 0x168
add eax, ecx
mov dword [eax], 7
mov dword [eax + 4], edi
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0xcc], esi
mov dword [esp + 0x28], esi
inc esi
mov dword [esp + 0x30], esi
test ebx, 0x80000
je 0x452633
mov eax, dword [esp + 0x20]
inc word [esp + eax*2 + 0x4c]
lea eax, [esp + eax*2 + 0x4c]
mov eax, esi
imul eax, eax, 0x168
add eax, ecx
mov dword [eax], 7
mov dword [eax + 4], edi
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xcc], esi
mov dword [esp + 0x20], esi
inc esi
mov dword [esp + 0x30], esi
test ebx, 0x200000
je 0x452665
inc word [esp + edx*2 + 0x4c]
mov eax, esi
imul eax, eax, 0x168
add eax, ecx
mov dword [esp + edx*4 + 0xcc], esi
mov edx, esi
inc esi
mov dword [eax], 7
mov dword [eax + 4], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], esi
test ebx, 0x20000000
je 0x4526a1
mov eax, dword [esp + 0x2c]
inc word [esp + eax*2 + 0x4c]
lea eax, [esp + eax*2 + 0x4c]
mov eax, esi
imul eax, eax, 0x168
add eax, ecx
mov dword [eax], 7
mov dword [eax + 4], edi
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0xcc], esi
mov dword [esp + 0x2c], esi
inc esi
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1d4]
mov dword [esp + eax*4 + 0xcc], esi
movsx eax, byte [edi + ebp]
sub eax, 0x3c
inc ebp
cmp eax, 0x3c
ja case.0x4526cb.61
movzx eax, byte [eax + 0x45321c]
jmp dword [eax*4 + 0x4531b4]
cmp eax, 1
jne case.0x4526cb.61
mov esi, dword [esp + 0x1d4]
mov cl, byte [esi + ebp]
lea eax, [esi + ebp]
or ebx, 0x100000
cmp cl, 0x2a
mov dword [esp + 0x24], 2
je 0x452728
cmp cl, 0x40
je 0x452728
push 0xa
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.0046abf0
add esp, 0xc
cmp eax, 0x24
mov dword [esp + 0x18], eax
jg case.0x4526cb.61
mov ebp, dword [esp + 0x3c]
sub ebp, esi
jmp case.0x452487.90
mov esi, dword [esp + 0x1d4]
inc ebp
lea edi, [esp + 0x34]
mov dword [esp + 0x34], ebp
or ebx, 0x200000
call fcn.004522d0
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x452774
mov ecx, dword [esp + 0x1c]
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x452765
mov edx, ecx
mov dword [esp + 0x18], edx
jmp 0x45278d
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x45278d
test eax, eax
mov eax, dword [esp + 0x18]
jne 0x452783
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
cmp eax, dword [esp + 0x14]
jle 0x45278d
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x14]
jle 0x45258d
mov dword [esp + 0x14], eax
jmp 0x45258d
mov dword [esp + 0x1d0], 1
jmp 0x4527bf
cmp dword [esp + 0x1d0], 1
jne 0x452854
mov esi, dword [esp + 0x1d4]
push 0xa
lea edx, [esp + 0x48]
push edx
lea eax, [esi + ebp]
push eax
or ebx, 0x30000
call fcn.0046abf0
mov ecx, dword [esp + 0x50]
add esp, 0xc
sub ecx, esi
test eax, eax
je 0x4527fc
cmp byte [ecx + esi], 0x24
jne 0x4527fc
dec eax
cmp eax, 0xffffffff
lea ebp, [ecx + 1]
mov dword [esp + 0x28], eax
jne 0x452822
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x452813
mov dword [esp + 0x28], ecx
jmp 0x45283b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x45283b
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x452831
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
cmp eax, dword [esp + 0x14]
jle 0x45283b
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jle case.0x452487.90
mov dword [esp + 0x14], ecx
jmp case.0x452487.90
or ebx, 0x8000000
jmp case.0x452487.90
test bl, 8
jne case.0x452487.49
or ebx, 0x2000
mov esi, dword [esp + 0x1d4]
push 0xa
lea edx, [esp + 0x40]
push edx
lea eax, [esi + ebp - 1]
push eax
or ebx, 0x10000
call fcn.0046abf0
mov ebp, dword [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x28], eax
sub ebp, esi
jmp case.0x452487.90
test bl, 0x40
jne case.0x4526cb.61
test bl, 0x20
je 0x4528b0
or ebx, 0x40
jmp case.0x452487.90
or ebx, 0x20
jmp case.0x452487.90
test bh, 1
jne case.0x4526cb.61
test bl, bl
jns 0x4528d0
or ebx, 0x100
jmp case.0x452487.90
or ebx, 0x80
jmp case.0x452487.90
or ebx, 0x200
jmp case.0x452487.90
or ebx, 0x480
jmp case.0x452487.90
or ebx, 0x880
jmp case.0x452487.90
or ebx, 0x1100
jmp case.0x452487.90
test ebx, 0x40000000
jne case.0x4526cb.61
test ebx, 0x22001fe0
jne case.0x4526cb.61
mov ecx, dword [esp + 0x1d4]
mov al, byte [ecx + ebp]
cmp al, 0x36
jne 0x45294a
cmp byte [ecx + ebp + 1], 0x34
jne 0x45294a
add ebp, 2
mov dword [esp + 0x2c], 8
or ebx, 0x40000000
jmp case.0x452487.90
cmp al, 0x33
jne 0x45296b
cmp byte [ecx + ebp + 1], 0x32
jne 0x45296b
add ebp, 2
mov dword [esp + 0x2c], 4
or ebx, 0x40000000
jmp case.0x452487.90
cmp al, 0x31
jne 0x45298c
cmp byte [ecx + ebp + 1], 0x36
jne 0x45298c
add ebp, 2
mov dword [esp + 0x2c], 2
or ebx, 0x40000000
jmp case.0x452487.90
cmp al, 0x38
jne case.0x4526cb.61
inc ebp
mov dword [esp + 0x2c], 1
or ebx, 0x40000000
jmp case.0x452487.90
or ebx, 0x2000000
jmp case.0x452487.90
or ebx, 0x1000000
jmp case.0x452487.90
or ebx, 1
mov dword [esp + 0x40], 1
jmp case.0x452487.90
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
or ebx, 0x20000000
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x4529eb
mov dword [esp + 0x2c], ecx
jmp 0x4529f8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
inc eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jle case.0x452487.90
mov eax, edx
mov dword [esp + 0x14], eax
jmp case.0x452487.90
or ebx, 0x1000
jmp case.0x452487.90
or ebx, 0x2000000
test bl, bl
jns 0x452a40
mov eax, esi
or ebx, 0x2000000
imul eax, eax, 0x168
mov dword [eax + ecx], 3
jmp 0x452d73
test bl, 0x20
je 0x452a4b
and ebx, 0xfdffffff
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 3
jmp 0x452d73
or ebx, 0x2000000
test bl, bl
jns 0x452a83
mov eax, esi
or ebx, 0x2000000
imul eax, eax, 0x168
mov dword [eax + ecx], 4
jmp 0x452d73
test bl, 0x20
je 0x452a8e
and ebx, 0xfdffffff
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 4
jmp 0x452d73
cmp dword [esp + 0x1d0], 2
jne 0x452d73
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 8
cmp byte [edi + ebp], 0x5e
mov dword [esp + 0x24], 1
jne 0x452ace
inc ebp
cmp byte [edi + ebp], 0x5d
jne 0x452ad5
inc ebp
cmp byte [edi + ebp], 0x2d
jne 0x452adc
inc ebp
mov al, byte [edi + ebp]
test al, al
je 0x452d73
mov ecx, dword [esp + 0x24]
jmp 0x452af0
cmp al, 0x5b
jne 0x452af7
inc ecx
jmp 0x452b00
cmp al, 0x5d
jne 0x452b00
dec ecx
test ecx, ecx
jle 0x452b0e
mov al, byte [edi + ebp + 1]
inc ebp
test al, al
jne 0x452af0
jmp 0x452d73
inc ebp
jmp 0x452d73
mov eax, esi
or ebx, 0x4000
imul eax, eax, 0x168
mov dword [eax + ecx], 1
jmp 0x452d73
and ebx, 0xffdfffff
mov edx, 0xa
jmp 0x452b72
mov edx, 8
jmp 0x452b66
or ebx, 0x8000
and ebx, 0xffdfffff
or ebx, 0x2000
mov edx, 2
jmp 0x452b72
or ebx, 0x8000
mov edx, 0x10
and ebx, 0xffdfffff
or ebx, 0x4000
mov dword [esp + 0x18], edx
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 1
jmp 0x452d73
or ebx, 0x8000
mov eax, esi
or ebx, 0x400000
imul eax, eax, 0x168
mov dword [eax + ecx], 2
jmp 0x452d73
or ebx, 0x8000
mov eax, esi
or ebx, 0x800000
imul eax, eax, 0x168
mov dword [eax + ecx], 2
jmp 0x452d73
or ebx, 0x8000
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 2
jmp 0x452d73
mov eax, esi
or ebx, 0x80
imul eax, eax, 0x168
mov dword [eax + ecx], 5
jmp 0x452d73
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 6
jmp 0x452d73
or ebx, 0x8000
mov eax, esi
imul eax, eax, 0x168
mov edx, 0x10
mov dword [esp + 0x18], edx
mov dword [eax + ecx], 2
jmp 0x452d73
mov eax, esi
imul eax, eax, 0x168
mov dword [eax + ecx], 9
jmp 0x452d73
mov edx, dword [esp + 0x1d8]
mov ecx, esi
imul ecx, ecx, 0x168
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x1d4]
add ecx, ebp
lea edi, [eax + 0x28]
mov dword [eax], 0xa
mov byte [edi], 0
mov dword [esp + 0x3c], ecx
mov dl, byte [ecx]
test dl, dl
mov dword [esp + 0x34], 1
mov dword [esp + 0x24], eax
je case.0x4526cb.61
inc ebp
cmp dl, 0x3e
je 0x452cee
cmp dl, 0x3a
jne 0x452ccb
mov edx, dword [esp + 0x1d4]
mov esi, ebp
sub esi, ecx
add esi, edx
cmp esi, 0x40
mov dword [esp + 0x34], 0
jbe 0x452cb0
mov esi, 0x40
call fcn.00451f60
mov edx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
lea ecx, [edx + ebp]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x1d4]
mov dl, byte [edx + ebp]
test dl, dl
jne 0x452c86
pop edi
shl ebp, 8
mov eax, 0xfffffffe
pop esi
sub eax, ebp
pop ebp
pop ebx
add esp, 0x1bc
ret
mov edx, dword [esp + 0x34]
test edx, edx
je 0x452d45
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1d8]
inc esi
inc word [esp + edx*2 + 0x4c]
mov dword [eax], 7
mov dword [eax + 0x18], ebp
mov dword [eax + 4], 0x8000000
mov eax, esi
imul eax, eax, 0x168
add eax, edi
inc edx
mov dword [esp + 0x24], eax
mov dword [eax], 0xa
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], edx
mov dword [esp + edx*4 + 0xcc], esi
jle 0x452d45
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1d4]
mov esi, ebp
sub esi, ecx
add esi, edx
cmp esi, 0x100
jbe 0x452d5f
mov esi, 0x100
mov edi, dword [esp + 0x24]
add edi, 0x68
call fcn.00451f60
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc word [esp + eax*2 + 0x4c]
lea eax, [esp + eax*2 + 0x4c]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x452e28
test bl, 1
jne 0x452e28
lea eax, [esi - 1]
test eax, eax
jl 0x452e28
mov edi, dword [esp + 0x1d8]
mov ecx, eax
imul ecx, ecx, 0x168
add ecx, edi
mov dword [esp + 0x24], ecx
mov edi, dword [ecx]
cmp edi, 7
je 0x452dde
test byte [ecx + 4], 1
je 0x452dde
mov ecx, dword [esp + 0x1d8]
mov edx, esi
imul edx, edx, 0x168
cmp edi, dword [edx + ecx]
je 0x452def
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
dec eax
sub ecx, 0x168
test eax, eax
mov dword [esp + 0x24], ecx
jge 0x452db5
jmp 0x452e28
imul eax, eax, 0x168
add eax, ecx
mov ecx, dword [eax + 4]
and ecx, 0xfffffffe
or ebx, ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x452e0e
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
cmp dword [esp + 0x20], 0xffffffff
jne 0x452e1c
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x18]
cmp edx, 0xffffffff
jne 0x452e28
mov edx, dword [eax + 0x10]
mov ecx, dword [esp + 0x1d8]
mov eax, esi
imul eax, eax, 0x168
add eax, ecx
cmp edx, 0xffffffff
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x18], ebp
mov dword [eax + 4], ebx
mov dword [eax + 0xc], ecx
jne 0x452e57
mov edx, 0xa
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x38]
inc esi
test eax, eax
mov dword [esp + 0x30], esi
jne 0x452e72
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1d4]
cmp byte [eax + ebp], 0
jne 0x4523c0
mov eax, dword [esp + 0x14]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x40], ecx
jl 0x4530b6
mov ebp, dword [esp + 0x1e0]
mov esi, dword [esp + 0x1dc]
lea eax, [esp + 0xcc]
sub eax, ebp
mov ebx, ebp
mov dword [esp + 0x44], eax
jmp 0x452ed0
pop edi
shl ebp, 8
mov eax, 0xfffffffd
pop esi
sub eax, ebp
pop ebp
pop ebx
add esp, 0x1bc
ret
mov eax, dword [esp + 0x44]
lea ecx, [ecx]
cmp word [esp + ecx*2 + 0x4c], 1
jne 0x4530c3
mov ecx, dword [ebx + eax]
mov edx, dword [esp + 0x1d8]
imul ecx, ecx, 0x168
mov edi, dword [ecx + edx]
add ecx, edx
cmp edi, 7
je 0x452f03
test dword [ecx + 4], 0x8000000
jne case.0x452f13.2
cmp edi, 0xa
ja case.0x452f13.2
movzx eax, byte [edi + 0x45326c]
jmp dword [eax*4 + 0x45325c]
cmp dword [esp + 0x1d0], 2
jne 0x452f56
test ebp, ebp
jne 0x452f3a
mov eax, dword [esi]
add eax, 4
mov dword [esi], eax
mov edx, dword [eax - 4]
mov dword [ecx + 0x20], edx
jmp case.0x452f13.2
cmp edi, 3
jne 0x452f46
mov eax, dword [ebx]
jmp 0x45309b
test byte [ecx + 4], 0x20
je 0x452f3f
mov edx, dword [ebx]
mov dword [ecx + 0x20], edx
jmp case.0x452f13.2
mov eax, dword [ecx + 4]
test eax, 0x60000000
je 0x452fa3
test eax, 0x20000000
mov edx, dword [ecx + 0x14]
je 0x452f82
mov ebp, dword [esp + 0x1d8]
imul edx, edx, 0x168
mov edx, dword [edx + ebp + 0x20]
mov ebp, dword [esp + 0x1e0]
and eax, 0xffffe27f
cmp edx, 4
mov dword [ecx + 4], eax
jle 0x452fa3
cmp edx, 8
jg 0x452f9b
or eax, 0x100
jmp 0x452fa0
or eax, 0x1000
mov dword [ecx + 4], eax
mov eax, dword [ecx + 4]
test ah, 4
je 0x452fcb
test ebp, ebp
jne 0x452fc0
mov eax, dword [esi]
add eax, 4
mov dword [esi], eax
mov eax, dword [eax - 4]
xor edx, edx
jmp 0x453098
mov eax, dword [ebx]
mov eax, dword [eax]
xor edx, edx
jmp 0x453098
test ah, 8
je 0x452fe7
test ebp, ebp
jne 0x453093
mov eax, dword [esi]
add eax, 4
mov dword [esi], eax
mov eax, dword [eax - 4]
jmp 0x453097
test ah, 0x10
je 0x453008
test ebp, ebp
jne 0x453026
mov eax, dword [esi]
add eax, 8
mov dword [esi], eax
mov edx, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
jmp case.0x452f13.2
test ah, 1
je 0x453035
test ebp, ebp
jne 0x453026
mov eax, dword [esi]
add eax, 8
mov dword [esi], eax
mov edx, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
jmp case.0x452f13.2
mov eax, dword [ebx]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
jmp case.0x452f13.2
test al, al
jns 0x453049
test ebp, ebp
jne 0x453093
mov eax, dword [esi]
add eax, 4
mov dword [esi], eax
mov eax, dword [eax - 4]
jmp 0x453097
test ebp, ebp
jne 0x453059
mov eax, dword [esi]
add eax, 4
mov dword [esi], eax
mov eax, dword [eax - 4]
jmp 0x453097
cmp edi, 3
jne 0x453065
mov eax, dword [ebx]
movsx eax, byte [eax]
jmp 0x453097
test al, 0x20
je 0x453070
mov edx, dword [ebx]
movsx eax, word [edx]
jmp 0x453097
mov eax, dword [ebx]
mov eax, dword [eax]
jmp 0x453097
test dword [ecx + 4], 0x8000000
je 0x453039
test ebp, ebp
jne 0x452f3f
mov eax, dword [esi]
add eax, 4
mov dword [esi], eax
mov eax, dword [eax - 4]
jmp 0x45309b
mov edx, dword [ebx]
mov eax, dword [edx]
cdq
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
inc ecx
add ebx, 4
cmp ecx, eax
mov dword [esp + 0x40], ecx
jle 0x452ec9
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x1bc
ret
cmp word [esp + ecx*2 + 0x4c], 0
jne 0x4530e0
pop edi
pop esi
shl ecx, 8
mov eax, 0xfffffffb
pop ebp
sub eax, ecx
pop ebx
add esp, 0x1bc
ret
pop edi
pop esi
shl ecx, 8
mov eax, 0xfffffffc
pop ebp
sub eax, ecx
pop ebx
add esp, 0x1bc
ret