Function at 0x40d910
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43e335
mov eax, dword fs:[0]
push eax
sub esp, 0xddc
mov eax, dword [0x451f00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0xde0], eax
mov dword [ebp - 0xdd4], edi
push 0x200
lea ecx, [ebp - 0xcd4]
push edi
push ecx
mov dword [ebp - 4], 1
call fcn.0042a220
push 0x1f4
lea edx, [ebp - 0xad4]
push edi
push edx
call fcn.0042a220
mov esi, 0xf
push 0x443c1c
mov dword [ebp - 0xda0], esi
mov dword [ebp - 0xda4], edi
mov byte [ebp - 0xdb4], 0
call fcn.0042bba0
add esp, 0x1c
push eax
push 0x443c1c
lea ecx, [ebp - 0xdb4]
call fcn.00404bf0
mov dword [ebp - 0xd30], esi
mov dword [ebp - 0xd34], edi
mov byte [ebp - 0xd44], 0
mov dword [ebp - 0xd4c], esi
mov dword [ebp - 0xd50], edi
mov byte [ebp - 0xd60], 0
mov dword [ebp - 0xd14], esi
mov dword [ebp - 0xd18], edi
mov byte [ebp - 0xd28], 0
mov dword [ebp - 0xd84], esi
mov dword [ebp - 0xd88], edi
mov byte [ebp - 0xd98], 0
mov dword [ebp - 0xd68], esi
mov dword [ebp - 0xd6c], edi
mov byte [ebp - 0xd7c], 0
mov dword [ebp - 0xdbc], esi
mov dword [ebp - 0xdc0], edi
mov byte [ebp - 0xdd0], 0
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0xd0c]
push ecx
mov byte [ebp - 4], 8
mov dword [ebp - 0xdd8], edi
call fcn.0040c350
add esp, 8
push eax
lea ecx, [ebp - 0xd28]
mov byte [ebp - 4], 9
call fcn.00404d30
cmp dword [ebp - 0xcf8], 0x10
mov byte [ebp - 4], 8
jb 0x40da6b
mov edx, dword [ebp - 0xd0c]
push edx
call fcn.0042a1b9
add esp, 4
push str.https:__
call fcn.0042bba0
mov ebx, eax
mov eax, dword [ebp - 0xd18]
mov esi, 8
add esp, 4
cmp eax, esi
jae 0x40da8b
mov esi, eax
mov eax, esi
cmp esi, ebx
jb 0x40da93
mov eax, ebx
cmp dword [ebp - 0xd14], 0x10
mov ecx, dword [ebp - 0xd28]
jae 0x40daa8
lea ecx, [ebp - 0xd28]
push eax
push str.https:__
push ecx
call fcn.0042a2a9
add esp, 0xc
cmp eax, edi
jne 0x40dad6
cmp esi, ebx
jb 0x40dad6
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
jne 0x40dad6
mov dword [ebp - 0xdd8], 8
jmp 0x40db3f
push str.http:__
call fcn.0042bba0
mov ebx, eax
mov eax, dword [ebp - 0xd18]
mov esi, 7
add esp, 4
cmp eax, esi
jae 0x40daf6
mov esi, eax
mov eax, esi
cmp esi, ebx
jb 0x40dafe
mov eax, ebx
cmp dword [ebp - 0xd14], 0x10
mov ecx, dword [ebp - 0xd28]
jae 0x40db13
lea ecx, [ebp - 0xd28]
push eax
push str.http:__
push ecx
call fcn.0042a2a9
add esp, 0xc
cmp eax, edi
jne 0x40db3f
cmp esi, ebx
jb 0x40db3f
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
jne 0x40db3f
mov dword [ebp - 0xdd8], 7
mov eax, dword [ebp - 0xdd8]
push 1
inc eax
push eax
lea ecx, [ebp - 0xddc]
push ecx
lea ecx, [ebp - 0xd28]
mov byte [ebp - 0xddc], 0x2f
call fcn.0040a2c0
mov esi, eax
cmp esi, 0xffffffff
jne 0x40dbaf
push 0x443c1c
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.0042bba0
add esp, 4
push eax
push 0x443c1c
lea ecx, [ebp - 0xcf0]
call fcn.00404bf0
lea eax, [ebp - 0xcf0]
mov byte [ebp - 4], 0xa
mov ebx, 1
jmp 0x40dbd0
push 0xffffffffffffffff
push esi
lea edx, [ebp - 0xd0c]
push edx
lea ecx, [ebp - 0xd28]
call fcn.0040d020
mov dword [ebp - 4], 0xb
mov ebx, 2
push eax
lea ecx, [ebp - 0xd44]
mov dword [ebp - 0xdd4], ebx
call fcn.00404d30
test bl, 2
je 0x40dc1f
and ebx, 0xfffffffd
cmp dword [ebp - 0xcf8], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dc08
mov eax, dword [ebp - 0xd0c]
push eax
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcf8], 0xf
mov dword [ebp - 0xcfc], edi
mov byte [ebp - 0xd0c], 0
mov dword [ebp - 4], 8
test bl, 1
je 0x40dc4c
and ebx, 0xfffffffe
cmp dword [ebp - 0xcdc], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dc4c
mov ecx, dword [ebp - 0xcf0]
push ecx
call fcn.0042a1b9
add esp, 4
mov eax, dword [ebp - 0xd28]
mov edx, dword [ebp - 0xd14]
mov ecx, eax
cmp esi, 0xffffffff
je 0x40dc6e
cmp edx, 0x10
jae 0x40dc6a
lea ecx, [ebp - 0xd28]
add ecx, esi
jmp 0x40dc7f
cmp edx, 0x10
jae 0x40dc79
lea ecx, [ebp - 0xd28]
add ecx, dword [ebp - 0xd18]
cmp edx, 0x10
jae 0x40dc8a
lea eax, [ebp - 0xd28]
mov edx, dword [ebp - 0xde8]
add eax, dword [ebp - 0xdd8]
push edx
push ecx
mov esi, 0xf
push eax
lea ecx, [ebp - 0xcf0]
mov dword [ebp - 0xcdc], esi
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.0040a670
lea eax, [ebp - 0xcf0]
push eax
lea ecx, [ebp - 0xd60]
mov byte [ebp - 4], 0xc
call fcn.00404d30
cmp dword [ebp - 0xcdc], 0x10
mov byte [ebp - 4], 8
jb 0x40dcee
mov ecx, dword [ebp - 0xcf0]
push ecx
call fcn.0042a1b9
add esp, 4
push 0x4459ac
call fcn.0042bba0
add esp, 4
push eax
push edi
push 0x4459ac
lea ecx, [ebp - 0xd44]
call fcn.0040a2c0
cmp eax, 0xffffffff
je 0x40dd2f
push eax
push edi
lea edx, [ebp - 0xd0c]
push edx
lea ecx, [ebp - 0xd44]
call fcn.0040d020
mov byte [ebp - 4], 0xd
or ebx, 4
jmp 0x40dd67
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0xd44]
push eax
lea ecx, [ebp - 0xcf0]
mov dword [ebp - 0xcdc], esi
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.00404b00
lea eax, [ebp - 0xcf0]
mov dword [ebp - 4], 0xe
or ebx, 8
push eax
lea ecx, [ebp - 0xd44]
mov dword [ebp - 0xdd4], ebx
call fcn.00404d30
test bl, 8
je 0x40ddb2
and ebx, 0xfffffff7
cmp dword [ebp - 0xcdc], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dd9f
mov ecx, dword [ebp - 0xcf0]
push ecx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcdc], esi
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
mov dword [ebp - 4], 8
test bl, 4
je 0x40dddf
and ebx, 0xfffffffb
cmp dword [ebp - 0xcf8], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dddf
mov edx, dword [ebp - 0xd0c]
push edx
call fcn.0042a1b9
add esp, 4
push 0x445830
call fcn.0042bba0
add esp, 4
push eax
push edi
push 0x445830
lea ecx, [ebp - 0xd60]
call fcn.0040a2c0
mov esi, eax
cmp esi, 0xffffffff
je 0x40de26
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0xd0c]
push ecx
lea ecx, [ebp - 0xd60]
call fcn.0040d020
mov byte [ebp - 4], 0xf
or ebx, 0x10
jmp 0x40de6b
push 0x443c1c
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.0042bba0
add esp, 4
push eax
push 0x443c1c
lea ecx, [ebp - 0xcf0]
call fcn.00404bf0
lea eax, [ebp - 0xcf0]
mov dword [ebp - 4], 0x10
or ebx, 0x20
push eax
lea ecx, [ebp - 0xd7c]
mov dword [ebp - 0xdd4], ebx
call fcn.00404d30
test bl, 0x20
je 0x40deba
and ebx, 0xffffffdf
cmp dword [ebp - 0xcdc], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dea3
mov edx, dword [ebp - 0xcf0]
push edx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
mov dword [ebp - 4], 8
test bl, 0x10
je 0x40dee7
and ebx, 0xffffffef
cmp dword [ebp - 0xcf8], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dee7
mov eax, dword [ebp - 0xd0c]
push eax
call fcn.0042a1b9
add esp, 4
cmp esi, 0xffffffff
jne 0x40def2
mov esi, dword [ebp - 0xd50]
push esi
push edi
lea ecx, [ebp - 0xd0c]
push ecx
lea ecx, [ebp - 0xd60]
call fcn.0040d020
push eax
lea ecx, [ebp - 0xd60]
mov byte [ebp - 4], 0x11
call fcn.00404d30
cmp dword [ebp - 0xcf8], 0x10
mov byte [ebp - 4], 8
jb 0x40df32
mov edx, dword [ebp - 0xd0c]
push edx
call fcn.0042a1b9
add esp, 4
mov eax, dword [ebp - 0xdd8]
cmp eax, edi
jle 0x40df5c
add eax, 0xfffffffd
push eax
push edi
lea eax, [ebp - 0xd0c]
push eax
lea ecx, [ebp - 0xd28]
call fcn.0040d020
mov byte [ebp - 4], 0x12
or ebx, 0x40
jmp 0x40dfa4
push 0x443c1c
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.0042bba0
add esp, 4
push eax
push 0x443c1c
lea ecx, [ebp - 0xcf0]
call fcn.00404bf0
lea eax, [ebp - 0xcf0]
mov dword [ebp - 4], 0x13
or ebx, 0x80
push eax
lea ecx, [ebp - 0xd98]
mov dword [ebp - 0xdd4], ebx
call fcn.00404d30
test bl, bl
jns 0x40dff5
and ebx, 0xffffff7f
cmp dword [ebp - 0xcdc], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40dfde
mov ecx, dword [ebp - 0xcf0]
push ecx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
mov dword [ebp - 4], 8
test bl, 0x40
je 0x40e022
and ebx, 0xffffffbf
cmp dword [ebp - 0xcf8], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40e022
mov edx, dword [ebp - 0xd0c]
push edx
call fcn.0042a1b9
add esp, 4
push 0x4459a8
call fcn.0042bba0
add esp, 4
push eax
push edi
push 0x4459a8
lea ecx, [ebp - 0xd44]
call fcn.0040a2c0
mov esi, eax
cmp esi, 0xffffffff
je 0x40e06c
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0xd0c]
push ecx
lea ecx, [ebp - 0xd44]
call fcn.0040d020
mov byte [ebp - 4], 0x14
or ebx, 0x100
jmp 0x40e0b4
push 0x443c1c
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.0042bba0
add esp, 4
push eax
push 0x443c1c
lea ecx, [ebp - 0xcf0]
call fcn.00404bf0
lea eax, [ebp - 0xcf0]
mov dword [ebp - 4], 0x15
or ebx, 0x200
push eax
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 0xdd4], ebx
call fcn.00404d30
test ebx, 0x200
je 0x40e109
and ebx, 0xfffffdff
cmp dword [ebp - 0xcdc], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40e0f2
mov edx, dword [ebp - 0xcf0]
push edx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
mov dword [ebp - 4], 8
test ebx, 0x100
je 0x40e13c
and ebx, 0xfffffeff
cmp dword [ebp - 0xcf8], 0x10
mov dword [ebp - 0xdd4], ebx
jb 0x40e13c
mov eax, dword [ebp - 0xd0c]
push eax
call fcn.0042a1b9
add esp, 4
cmp esi, 0xffffffff
je 0x40e161
push esi
push edi
lea ecx, [ebp - 0xd0c]
push ecx
lea ecx, [ebp - 0xd44]
call fcn.0040d020
mov byte [ebp - 4], 0x16
or ebx, 0x400
jmp 0x40e1a0
push 0xffffffffffffffff
push edi
lea edx, [ebp - 0xd44]
push edx
lea ecx, [ebp - 0xcf0]
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
call fcn.00404b00
lea eax, [ebp - 0xcf0]
mov dword [ebp - 4], 0x17
or ebx, 0x800
push eax
lea ecx, [ebp - 0xd44]
mov dword [ebp - 0xdd4], ebx
call fcn.00404d30
mov esi, 0x10
test ebx, 0x800
je 0x40e1f3
and ebx, 0xfffff7ff
cmp dword [ebp - 0xcdc], esi
jb 0x40e1dc
mov eax, dword [ebp - 0xcf0]
push eax
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcdc], 0xf
mov dword [ebp - 0xce0], edi
mov byte [ebp - 0xcf0], 0
mov dword [ebp - 4], 8
test ebx, 0x400
je 0x40e219
cmp dword [ebp - 0xcf8], esi
jb 0x40e219
mov ecx, dword [ebp - 0xd0c]
push ecx
call fcn.0042a1b9
add esp, 4
mov eax, dword [ebp - 0xd60]
cmp dword [ebp - 0xd4c], esi
jae 0x40e22d
lea eax, [ebp - 0xd60]
push eax
call dword [0x46477c]
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x20], esi
jae 0x40e23f
lea eax, [ebp + 0xc]
push eax
call dword [0x46477c]
cmp dword [ebp + 0x28], edi
je 0x40e2bc
lea edx, [ebp - 0xd0c]
push edx
lea ecx, [ebp - 0xde1]
call fcn.00420170
mov byte [ebp - 4], 0x18
cmp dword [eax + 0x14], esi
jb 0x40e268
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
call dword [0x46479c]
mov esi, 0x10
mov edi, eax
mov dword [ebp - 0xdd8], edi
mov byte [ebp - 4], 8
cmp dword [ebp - 0xcf8], esi
jb 0x40e29f
mov eax, dword [ebp - 0xd0c]
push eax
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xcf8], 0xf
mov dword [ebp - 0xcfc], 0
mov byte [ebp - 0xd0c], 0
jmp 0x40e2e3
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x40], esi
jae 0x40e2c7
lea eax, [ebp + 0x2c]
push 0
push 0
push 0
push 0
push eax
call dword [0x46479c]
mov edi, eax
mov dword [ebp - 0xdd8], eax
mov esi, 0x10
mov eax, dword [ebp - 0xd7c]
cmp dword [ebp - 0xd68], esi
jae 0x40e2f7
lea eax, [ebp - 0xd7c]
push eax
call fcn.0042cf50
add esp, 4
mov ebx, eax
mov eax, dword [ebp - 0xd98]
cmp dword [ebp - 0xd84], esi
jae 0x40e316
lea eax, [ebp - 0xd98]
push str.https
push eax
call dword [0x464890]
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xff800000
add esi, 0x4800000
test edi, edi
je 0x40e533
cmp dword [ebp - 0xd4c], 0x10
mov eax, dword [ebp - 0xd60]
jae 0x40e351
lea eax, [ebp - 0xd60]
mov ecx, dword [ebp - 0xdd8]
push 0
push esi
push 3
push 0
push 0
push ebx
push eax
push ecx
call dword [0x4648b8]
mov edi, eax
test edi, edi
je 0x40e526
cmp dword [ebp - 0xd30], 0x10
mov eax, dword [ebp - 0xd44]
jae 0x40e388
lea eax, [ebp - 0xd44]
push 0
push esi
push 0
push 0
push 0
push eax
push 0x44599c
push edi
call dword [0x4648fc]
mov esi, eax
test esi, esi
je 0x40e51f
push 0
push 0
push 0
push 0
push esi
call dword [0x46487c]
push 0
lea edx, [ebp - 0xde8]
push edx
mov ebx, eax
lea eax, [ebp - 0x110]
push eax
push 0x13
push esi
mov dword [ebp - 0xde8], 0x100
call dword [0x464914]
test eax, eax
jne 0x40e456
mov esi, dword [ebp - 0xde0]
push 0x445994
mov ecx, esi
call fcn.00404cf0
lea ecx, [ebp - 0xdd0]
call fcn.00404660
lea ecx, [ebp - 0xd7c]
call fcn.00404660
lea ecx, [ebp - 0xd98]
call fcn.00404660
lea ecx, [ebp - 0xd28]
call fcn.00404660
lea ecx, [ebp - 0xd60]
call fcn.00404660
lea ecx, [ebp - 0xd44]
call fcn.00404660
lea ecx, [ebp - 0xdb4]
call fcn.00404660
lea ecx, [ebp + 0xc]
call fcn.00404660
lea ecx, [ebp + 0x2c]
call fcn.00404660
mov eax, esi
jmp 0x40e6b1
lea ecx, [ebp - 0x110]
push ecx
call fcn.0042cf50
add esp, 4
cmp eax, 0xc8
jne 0x40e3e0
test ebx, ebx
je 0x40e518
lea edx, [ebp - 0xdd4]
push edx
push 0x7cf
lea eax, [ebp - 0x8e0]
push eax
push esi
call dword [0x4647c0]
test eax, eax
je 0x40e518
mov bl, 0x19
lea esp, [esp]
mov eax, dword [ebp - 0xdd4]
test eax, eax
je 0x40e518
lea ecx, [ebp - 0x8e0]
push ecx
lea edx, [ebp - 0xdb4]
mov byte [ebp + eax - 0x8e0], 0
push edx
lea eax, [ebp - 0xcf0]
push eax
call fcn.0040d0b0
add esp, 0xc
push eax
lea ecx, [ebp - 0xdb4]
mov byte [ebp - 4], bl
call fcn.00404d30
cmp dword [ebp - 0xcdc], 0x10
mov byte [ebp - 4], 8
jb 0x40e4fa
mov ecx, dword [ebp - 0xcf0]
push ecx
call fcn.0042a1b9
add esp, 4
lea edx, [ebp - 0xdd4]
push edx
push 0x7cf
lea eax, [ebp - 0x8e0]
push eax
push esi
call dword [0x4647c0]
test eax, eax
jne 0x40e4a0
push esi
call dword [0x464798]
push edi
call dword [0x464798]
mov ecx, dword [ebp - 0xdd8]
push ecx
call dword [0x464798]
mov ecx, dword [ebp - 0xde0]
xor ebx, ebx
lea edx, [ebp - 0xdb4]
mov edi, 0xf
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push edx
mov esi, 0x10
mov byte [ecx], bl
call fcn.00404d30
cmp dword [ebp - 0xdbc], esi
jb 0x40e570
mov eax, dword [ebp - 0xdd0]
push eax
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xdbc], edi
mov dword [ebp - 0xdc0], ebx
mov byte [ebp - 0xdd0], 0
cmp dword [ebp - 0xd68], esi
jb 0x40e59a
mov ecx, dword [ebp - 0xd7c]
push ecx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xd68], edi
mov dword [ebp - 0xd6c], ebx
mov byte [ebp - 0xd7c], 0
cmp dword [ebp - 0xd84], esi
jb 0x40e5c4
mov edx, dword [ebp - 0xd98]
push edx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xd84], edi
mov dword [ebp - 0xd88], ebx
mov byte [ebp - 0xd98], 0
cmp dword [ebp - 0xd14], esi
jb 0x40e5ee
mov eax, dword [ebp - 0xd28]
push eax
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xd14], edi
mov dword [ebp - 0xd18], ebx
mov byte [ebp - 0xd28], 0
cmp dword [ebp - 0xd4c], esi
jb 0x40e618
mov ecx, dword [ebp - 0xd60]
push ecx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xd4c], edi
mov dword [ebp - 0xd50], ebx
mov byte [ebp - 0xd60], 0
cmp dword [ebp - 0xd30], esi
jb 0x40e642
mov edx, dword [ebp - 0xd44]
push edx
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xd30], edi
mov dword [ebp - 0xd34], ebx
mov byte [ebp - 0xd44], 0
cmp dword [ebp - 0xda0], esi
jb 0x40e66c
mov eax, dword [ebp - 0xdb4]
push eax
call fcn.0042a1b9
add esp, 4
mov dword [ebp - 0xda0], edi
mov dword [ebp - 0xda4], ebx
mov byte [ebp - 0xdb4], 0
cmp dword [ebp + 0x20], esi
jb 0x40e690
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0042a1b9
add esp, 4
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0xc], 0
cmp dword [ebp + 0x40], esi
jb 0x40e6ab
mov edx, dword [ebp + 0x2c]
push edx
call fcn.0042a1b9
add esp, 4
mov eax, dword [ebp - 0xde0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042a29a
mov esp, ebp
pop ebp
ret